Documentation ¶
Index ¶
- Variables
- func CSVToMap(in io.Reader) (map[string]string, error)
- func CSVToMaps(reader io.Reader) ([]map[string]string, error)
- func Marshal(in interface{}, out io.Writer) (err error)
- func MarshalBytes(in interface{}) (out []byte, err error)
- func MarshalCSV(in interface{}, out *SafeCSVWriter) (err error)
- func MarshalCSVWithoutHeaders(in interface{}, out *SafeCSVWriter) (err error)
- func MarshalChan(c <-chan interface{}, out *SafeCSVWriter) error
- func MarshalFile(in interface{}, file *os.File) (err error)
- func MarshalString(in interface{}) (out string, err error)
- func MarshalWithoutHeaders(in interface{}, out io.Writer) (err error)
- func SetCSVReader(csvReader func(io.Reader) CSVReader)
- func SetCSVWriter(csvWriter func(io.Writer) *SafeCSVWriter)
- func Unmarshal(in io.Reader, out interface{}) error
- func UnmarshalBytes(in []byte, out interface{}) error
- func UnmarshalBytesToCallback(in []byte, f interface{}) error
- func UnmarshalBytesToChan(in []byte, c interface{}) error
- func UnmarshalCSV(in CSVReader, out interface{}) error
- func UnmarshalDecoder(in Decoder, out interface{}) error
- func UnmarshalDecoderToCallback(in SimpleDecoder, f interface{}) error
- func UnmarshalDecoderToChan(in SimpleDecoder, c interface{}) error
- func UnmarshalFile(in *os.File, out interface{}) error
- func UnmarshalString(in string, out interface{}) error
- func UnmarshalStringToCallback(in string, c interface{}) (err error)
- func UnmarshalStringToChan(in string, c interface{}) error
- func UnmarshalToCallback(in io.Reader, f interface{}) error
- func UnmarshalToChan(in io.Reader, c interface{}) error
- func UnmarshalWithoutHeaders(in io.Reader, out interface{}) error
- type CSVReader
- type Decoder
- type NoMarshalFuncError
- type NoUnmarshalFuncError
- type SafeCSVWriter
- type SimpleDecoder
- type Stringer
- type TypeMarshaller
- type TypeUnmarshaller
- type Unmarshaller
Constants ¶
This section is empty.
Variables ¶
var FailIfDoubleHeaderNames = false
FailIfDoubleHeaderNames indicates whether it is considered an error when a header name is repeated in the csv header.
var FailIfUnmatchedStructTags = false
FailIfUnmatchedStructTags indicates whether it is considered an error when there is an unmatched struct tag.
var ShouldAlignDuplicateHeadersWithStructFieldOrder = false
ShouldAlignDuplicateHeadersWithStructFieldOrder indicates whether we should align duplicate CSV headers per their alignment in the struct definition.
var TagSeparator = ","
TagSeparator defines seperator string for multiple csv tags in struct fields
Functions ¶
func CSVToMaps ¶
CSVToMaps takes a reader and returns an array of dictionaries, using the header row as the keys
func MarshalBytes ¶
MarshalBytes returns the CSV bytes from the interface.
func MarshalCSV ¶
func MarshalCSV(in interface{}, out *SafeCSVWriter) (err error)
MarshalCSV returns the CSV in writer from the interface.
func MarshalCSVWithoutHeaders ¶
func MarshalCSVWithoutHeaders(in interface{}, out *SafeCSVWriter) (err error)
MarshalCSVWithoutHeaders returns the CSV in writer from the interface.
func MarshalChan ¶
func MarshalChan(c <-chan interface{}, out *SafeCSVWriter) error
MarshalChan returns the CSV read from the channel.
func MarshalFile ¶
MarshalFile saves the interface as CSV in the file.
func MarshalString ¶
MarshalString returns the CSV string from the interface.
func MarshalWithoutHeaders ¶
Marshal returns the CSV in writer from the interface.
func SetCSVReader ¶
SetCSVReader sets the CSV reader used to parse CSV.
func SetCSVWriter ¶
func SetCSVWriter(csvWriter func(io.Writer) *SafeCSVWriter)
SetCSVWriter sets the SafeCSVWriter used to format CSV.
func UnmarshalBytes ¶
UnmarshalBytes parses the CSV from the bytes in the interface.
func UnmarshalBytesToCallback ¶
UnmarshalBytesToCallback parses the CSV from the bytes and send each value to the given func f. The func must look like func(Struct).
func UnmarshalBytesToChan ¶
UnmarshalBytesToChan parses the CSV from the bytes and send each value in the chan c. The channel must have a concrete type.
func UnmarshalCSV ¶
UnmarshalCSV parses the CSV from the reader in the interface.
func UnmarshalDecoder ¶
UnmarshalDecoder parses the CSV from the decoder in the interface
func UnmarshalDecoderToCallback ¶
func UnmarshalDecoderToCallback(in SimpleDecoder, f interface{}) error
UnmarshalDecoderToCallback parses the CSV from the decoder and send each value to the given func f. The func must look like func(Struct).
func UnmarshalDecoderToChan ¶
func UnmarshalDecoderToChan(in SimpleDecoder, c interface{}) error
UnmarshalDecoderToChan parses the CSV from the decoder and send each value in the chan c. The channel must have a concrete type.
func UnmarshalFile ¶
UnmarshalFile parses the CSV from the file in the interface.
func UnmarshalString ¶
UnmarshalString parses the CSV from the string in the interface.
func UnmarshalStringToCallback ¶
UnmarshalStringToCallback parses the CSV from the string and send each value to the given func f. The func must look like func(Struct).
func UnmarshalStringToChan ¶
UnmarshalStringToChan parses the CSV from the string and send each value in the chan c. The channel must have a concrete type.
func UnmarshalToCallback ¶
UnmarshalToCallback parses the CSV from the reader and send each value to the given func f. The func must look like func(Struct).
func UnmarshalToChan ¶
UnmarshalToChan parses the CSV from the reader and send each value in the chan c. The channel must have a concrete type.
func UnmarshalWithoutHeaders ¶
UnmarshalWithoutHeaders parses the CSV from the reader in the interface.
Types ¶
type CSVReader ¶
func DefaultCSVReader ¶
DefaultCSVReader is the default CSV reader used to parse CSV (cf. csv.NewReader)
func LazyCSVReader ¶
LazyCSVReader returns a lazy CSV reader, with LazyQuotes and TrimLeadingSpace.
type NoMarshalFuncError ¶
type NoMarshalFuncError struct {
// contains filtered or unexported fields
}
NoMarshalFuncError is the custom error type to be raised in case there is no marshal function defined on type
func (NoMarshalFuncError) Error ¶
func (e NoMarshalFuncError) Error() string
type NoUnmarshalFuncError ¶
type NoUnmarshalFuncError struct {
// contains filtered or unexported fields
}
NoUnmarshalFuncError is the custom error type to be raised in case there is no unmarshal function defined on type
func (NoUnmarshalFuncError) Error ¶
func (e NoUnmarshalFuncError) Error() string
type SafeCSVWriter ¶
func DefaultCSVWriter ¶
func DefaultCSVWriter(out io.Writer) *SafeCSVWriter
DefaultCSVWriter is the default SafeCSVWriter used to format CSV (cf. csv.NewWriter)
func NewSafeCSVWriter ¶
func NewSafeCSVWriter(original *csv.Writer) *SafeCSVWriter
type SimpleDecoder ¶
type SimpleDecoder interface {
// contains filtered or unexported methods
}
SimpleDecoder .
type Stringer ¶
type Stringer interface {
String() string
}
Stringer is implemented by any value that has a String method This converter is used to convert the value to it string representation This converter will be used if your value does not implement TypeMarshaller
type TypeMarshaller ¶
TypeMarshaller is implemented by any value that has a MarshalCSV method This converter is used to convert the value to it string representation
type TypeUnmarshaller ¶
TypeUnmarshaller is implemented by any value that has an UnmarshalCSV method This converter is used to convert a string to your value representation of that string
type Unmarshaller ¶
type Unmarshaller struct { MismatchedHeaders []string MismatchedStructFields []string // contains filtered or unexported fields }
Unmarshaller is a CSV to struct unmarshaller.
func NewUnmarshaller ¶
func NewUnmarshaller(reader *csv.Reader, out interface{}) (*Unmarshaller, error)
NewUnmarshaller creates an unmarshaller from a csv.Reader and a struct.
func (*Unmarshaller) Read ¶
func (um *Unmarshaller) Read() (interface{}, error)
Read returns an interface{} whose runtime type is the same as the struct that was used to create the Unmarshaller.
func (*Unmarshaller) ReadUnmatched ¶
func (um *Unmarshaller) ReadUnmatched() (interface{}, map[string]string, error)
The same as Read(), but returns a map of the columns that didn't match a field in the struct