Documentation ¶
Index ¶
- Variables
- func FillMap(s interface{}, out map[string]interface{})
- func HasZero(s interface{}) bool
- func IsStruct(s interface{}) bool
- func IsZero(s interface{}) bool
- func Map(s interface{}) map[string]interface{}
- func Name(s interface{}) string
- func Names(s interface{}) []string
- func String(s interface{}) string
- func UrlValues(s interface{}) url.Values
- func Values(s interface{}) []interface{}
- type Field
- func (f *Field) Field(name string) *Field
- func (f *Field) FieldOk(name string) (*Field, bool)
- func (f *Field) Fields() []*Field
- func (f *Field) IsEmbedded() bool
- func (f *Field) IsExported() bool
- func (f *Field) IsZero() bool
- func (f *Field) Kind() reflect.Kind
- func (f *Field) Name() string
- func (f *Field) Set(val interface{}) error
- func (f *Field) Tag(key string) string
- func (f *Field) Value() interface{}
- func (f *Field) Zero() error
- type Struct
- func (s *Struct) Fields() []*Field
- func (s *Struct) FillMap(out map[string]interface{})
- func (s *Struct) HasZero() bool
- func (s *Struct) IsZero() bool
- func (s *Struct) Map() map[string]interface{}
- func (s *Struct) Name() string
- func (s *Struct) Names() []string
- func (s *Struct) String() string
- func (s *Struct) UrlValues(ctz bool) url.Values
- func (s *Struct) Values() []interface{}
Constants ¶
This section is empty.
Variables ¶
var DefaultTagName = "json"
Functions ¶
func FillMap ¶
func FillMap(s interface{}, out map[string]interface{})
FillMap is the same as Map. Instead of returning the output, it fills the given map.
func HasZero ¶
func HasZero(s interface{}) bool
HasZero returns true if any field is equal to a zero value. For more info refer to Struct types HasZero() method. It panics if s's kind is not structs.
func IsStruct ¶
func IsStruct(s interface{}) bool
IsStruct returns true if the given variable is a structs or a pointer to structs.
func IsZero ¶
func IsZero(s interface{}) bool
IsZero returns true if all fields is equal to a zero value. For more info refer to Struct types IsZero() method. It panics if s's kind is not structs.
func Map ¶
func Map(s interface{}) map[string]interface{}
Map converts the given structs to a map[string]interface{}. For more info refer to Struct types Map() method. It panics if s's kind is not structs.
func Name ¶
func Name(s interface{}) string
Name returns the structs's type name within its package. It returns an empty string for unnamed types. It panics if s's kind is not structs.
Types ¶
type Field ¶
type Field struct {
// contains filtered or unexported fields
}
Field represents a single structs field that encapsulates high level functions around the field.
func Fields ¶
func Fields(s interface{}) []*Field
Fields returns a slice of *Field. For more info refer to Struct types Fields() method. It panics if s's kind is not structs.
func (*Field) Field ¶
Field returns the field from a nested structs. It panics if the nested structs is not exported or if the field was not found.
func (*Field) FieldOk ¶
FieldOk returns the field from a nested structs. The boolean returns whether the field was found (true) or not (false).
func (*Field) Fields ¶
Fields returns a slice of Fields. This is particular handy to get the fields of a nested structs . A structs tag with the content of "-" ignores the checking of that particular field. Example:
// Field is ignored by this package. Field *http.Request `structs:"-"`
It panics if field is not exported or if field's kind is not structs
func (*Field) IsEmbedded ¶
IsEmbedded returns true if the given field is an anonymous field (embedded)
func (*Field) IsExported ¶
IsExported returns true if the given field is exported.
func (*Field) IsZero ¶
IsZero returns true if the given field is not initialized (has a zero value). It panics if the field is not exported.
func (*Field) Set ¶
Set sets the field to given value v. It returns an error if the field is not settable (not addressable or not exported) or if the given value's type doesn't match the fields type.
func (*Field) Tag ¶
Tag returns the value associated with key in the tag string. If there is no such key in the tag, Tag returns the empty string.
type Struct ¶
type Struct struct { TagName string // contains filtered or unexported fields }
func (*Struct) Fields ¶
Fields returns a slice of Fields. A structs tag with the content of "-" ignores the checking of that particular field. Example:
// Field is ignored by this package. Field bool `structs:"-"`
It panics if s's kind is not structs.
func (*Struct) FillMap ¶
FillMap is the same as Map. Instead of returning the output, it fills the given map.
func (*Struct) HasZero ¶
HasZero returns true if a field in a structs is not initialized (zero value). A structs tag with the content of "-" ignores the checking of that particular field. Example:
// Field is ignored by this package. Field bool `structs:"-"`
A value with the option of "omitnested" stops iterating further if the type is a structs. Example:
// Field is not processed further by this package. Field time.Time `structs:"myName,omitnested"` Field *http.Request `structs:",omitnested"`
Note that only exported fields of a structs can be accessed, non exported fields will be neglected. It panics if s's kind is not structs.
func (*Struct) IsZero ¶
IsZero returns true if all fields in a structs is a zero value (not initialized) A structs tag with the content of "-" ignores the checking of that particular field. Example:
// Field is ignored by this package. Field bool `structs:"-"`
A value with the option of "omitnested" stops iterating further if the type is a structs. Example:
// Field is not processed further by this package. Field time.Time `structs:"myName,omitnested"` Field *http.Request `structs:",omitnested"`
Note that only exported fields of a structs can be accessed, non exported fields will be neglected. It panics if s's kind is not structs.
func (*Struct) Name ¶
Name returns the structs's type name within its package. For more info refer to Name() function.
func (*Struct) Names ¶
Names returns a slice of field names. A structs tag with the content of "-" ignores the checking of that particular field. Example:
// Field is ignored by this package. Field bool `structs:"-"`
It panics if s's kind is not structs.
func (*Struct) Values ¶
func (s *Struct) Values() []interface{}
Values converts the given s structs's field values to a []interface{}. A structs tag with the content of "-" ignores the that particular field. Example:
// Field is ignored by this package. Field int `structs:"-"`
A value with the option of "omitnested" stops iterating further if the type is a structs. Example:
// Fields is not processed further by this package. Field time.Time `structs:",omitnested"` Field *http.Request `structs:",omitnested"`
A tag value with the option of "omitempty" ignores that particular field and is not added to the values if the field value is empty. Example:
// Field is skipped if empty Field string `structs:",omitempty"`
Note that only exported fields of a structs can be accessed, non exported fields will be neglected.