func Types(typs map[string]string) ConfigFunc {
	return func(c *Config) {
		c.Types = make(map[string]types.DataType, len(typs))
		for k, v := range typs {
			c.Types[k] = types.DataType(v)
		}
	}
}
Types is used set types for certain columns.
If types are not given a best effort attempt will be done to auto detected the type.

typs - map column name -> type name. For a list of type names see package qframe/types.
package csv
import (
	qfio "github.com/tobgu/qframe/internal/io"
	"github.com/tobgu/qframe/types"
)
type Config qfio.CSVConfig
type ConfigFunc func(*Config)
func NewConfig(ff []ConfigFunc) Config {
	conf := Config{Delimiter: ','}
	for _, f := range ff {
		f(&conf)
	}
	return conf
}
func EmptyNull(emptyNull bool) ConfigFunc {
	return func(c *Config) {
		c.EmptyNull = emptyNull
	}
}
func MissingColumnNameAlias(MissingColumnNameAlias string) ConfigFunc {
	return func(c *Config) {
		c.MissingColumnNameAlias = MissingColumnNameAlias
	}
}
func RenameDuplicateColumns(RenameDuplicateColumns bool) ConfigFunc {
	return func(c *Config) {
		c.RenameDuplicateColumns = RenameDuplicateColumns
	}
}
func IgnoreEmptyLines(ignoreEmptyLines bool) ConfigFunc {
	return func(c *Config) {
		c.IgnoreEmptyLines = ignoreEmptyLines
	}
}
func Delimiter(delimiter byte) ConfigFunc {
	return func(c *Config) {
		c.Delimiter = delimiter
	}
}