Documentation
¶
Index ¶
- Variables
- func Decode(dst any, src map[string][]string) error
- func GetStringSliceConverter(elemTyp reflect.Type) func(value string) (any, error)
- func GetStringSliceConverterByKind(kind reflect.Kind) func(value string) (any, error)
- func IgnoreUnknownKeys(i bool)
- func MappingByTag(ptr any, setter Setter, tag string) error
- func RegisterConverter(value interface{}, converterFunc StringConverter)
- func SetAliasTag(tag string)
- func SetValueByKV(value reflect.Value, field *reflect.StructField, kv Get, key string, ...) (isSet bool, err error)
- func SetValueByKVs(value reflect.Value, field *reflect.StructField, kv GetVs, key string, ...) (isSet bool, err error)
- func Unmarshal(dst any, mapData map[string]any, opts ...DecoderConfigOption) error
- func ZeroEmpty(z bool)
- type CanSetter
- type CanSetters
- type ConversionError
- type Decoder
- type DecoderConfigOption
- type EmptyFieldError
- type Encoder
- type Get
- type GetVs
- type GetVss
- type Gets
- type KVSource
- type KVsSource
- type Options
- type Setter
- type Setters
- type StringConverter
- type StringConverterE
- type UnknownKeyError
Constants ¶
This section is empty.
Variables ¶
var Sep = ","
Functions ¶
func GetStringSliceConverter ¶
func IgnoreUnknownKeys ¶
func IgnoreUnknownKeys(i bool)
func RegisterConverter ¶
func RegisterConverter(value interface{}, converterFunc StringConverter)
RegisterConverter registers a converter function for a custom type.
func SetAliasTag ¶
func SetAliasTag(tag string)
func SetValueByKV ¶ added in v1.7.7
func SetValueByKVs ¶ added in v1.7.7
Types ¶
type CanSetters ¶
type CanSetters []CanSetter
type ConversionError ¶
type ConversionError struct {
Key string // key from the source map.
Type reflect.Type // expected type of elem
Index int // index for multi-value fields; -1 for single-value fields.
Err error // low-level error (when it exists)
}
ConversionError stores information about a failed conversion.
func (ConversionError) Error ¶
func (e ConversionError) Error() string
type Decoder ¶
type Decoder struct {
// contains filtered or unexported fields
}
Decoder decodes values from a map[string][]string to a struct.
func DefaultDecoder ¶
func DefaultDecoder() *Decoder
func (*Decoder) Decode ¶
Decode decodes a map[string][]string to a struct.
The first parameter must be a pointer to a struct.
The second parameter is a map, typically url.Values from an HTTP request. Keys are "paths" in dotted notation to the struct fields and nested structs.
See the package documentation for a full explanation of the mechanics.
func (*Decoder) IgnoreUnknownKeys ¶
IgnoreUnknownKeys controls the behaviour when the Decoder encounters unknown keys in the map. If i is true and an unknown field is encountered, it is ignored. This is similar to how unknown keys are handled by encoding/json. If i is false then Decode will return an error. Note that any valid keys will still be decoded in to the target struct.
To preserve backwards compatibility, the default value is false.
func (*Decoder) RegisterConverter ¶
func (d *Decoder) RegisterConverter(value interface{}, converterFunc StringConverter)
RegisterConverter registers a converter function for a custom type.
func (*Decoder) SetAliasTag ¶
SetAliasTag changes the Key used to locate custom field aliases. The default Key is "schema".
func (*Decoder) ZeroEmpty ¶
ZeroEmpty controls the behaviour when the Decoder encounters empty values in a map. If z is true and a key in the map has the empty string as a value then the corresponding struct field is set to the zero value. If z is false then empty strings are ignored.
The default value is false, that is empty values do not change the value of the struct field.
type DecoderConfigOption ¶
type DecoderConfigOption func(*mapstructure.DecoderConfig)
type EmptyFieldError ¶
type EmptyFieldError struct {
Key string // required key in the source map.
}
EmptyFieldError stores information about an empty required field.
func (EmptyFieldError) Error ¶
func (e EmptyFieldError) Error() string
type Encoder ¶
type Encoder struct {
// contains filtered or unexported fields
}
Encoder encodes values from a struct into url.Values.
func NewEncoder ¶
NewEncoder returns a new Encoder with defaults.
func (*Encoder) Encode ¶
Encode encodes a struct into map[string][]string.
Intended for use with url.Values.
func (*Encoder) RegisterEncoder ¶
RegisterEncoder registers a converter for encoding a custom type.
func (*Encoder) SetAliasTag ¶
SetAliasTag changes the Key used to locate custom field aliases. The default Key is "schema".
type Setter ¶
type Setter interface {
TrySet(value reflect.Value, field *reflect.StructField, key string, opt *Options) (isSet bool, err error)
}
Setter tries to set value on a walking by fields of a struct
type StringConverter ¶
func GetStringConverter ¶
func GetStringConverter(typ reflect.Type) StringConverter
func GetStringConverterByKind ¶
func GetStringConverterByKind(kind reflect.Kind) StringConverter
type StringConverterE ¶
func GetStringConverterE ¶
func GetStringConverterE(typ reflect.Type) StringConverterE
func GetStringConverterEByKind ¶
func GetStringConverterEByKind(kind reflect.Kind) StringConverterE
func (StringConverterE) IgnoreError ¶
func (c StringConverterE) IgnoreError() StringConverter
type UnknownKeyError ¶
type UnknownKeyError struct {
Key string // key from the source map.
}
UnknownKeyError stores information about an unknown key in the source map.
func (UnknownKeyError) Error ¶
func (e UnknownKeyError) Error() string