Documentation
¶
Overview ¶
Utilities for working with and manipulating structs.
Index ¶
- Variables
- func CopyFunc(dest interface{}, source interface{}, fn StructValueFunc) error
- func CopyNonZero(dest interface{}, source interface{}) error
- func FieldsFunc(in interface{}, fn StructFieldFunc) error
- type Field
- func (self *Field) GetTag(label string, fallback ...interface{}) (string, []string, bool)
- func (self *Field) Kind() reflect.Kind
- func (self *Field) MergeValue(in interface{}) error
- func (self *Field) Set(value interface{}) error
- func (self *Field) V() typeutil.Variant
- func (self *Field) Value() reflect.Value
- type Struct
- type StructFieldFunc
- type StructValueFunc
Constants ¶
This section is empty.
Variables ¶
View Source
var StopIterating = errors.New(`stop iterating`)
View Source
var StructTag string = `structutil`
Functions ¶
func CopyFunc ¶
func CopyFunc(dest interface{}, source interface{}, fn StructValueFunc) error
func CopyNonZero ¶
func CopyNonZero(dest interface{}, source interface{}) error
Copy all values from the source into the destination, provided the source value for the corresponding field is not that type's zero value.
func FieldsFunc ¶
func FieldsFunc(in interface{}, fn StructFieldFunc) error
Iterates over all exported and embedded fields in the given struct, calling fn for each field.
Types ¶
type Field ¶
type Field struct { *reflect.StructField Struct *Struct }
func (*Field) MergeValue ¶
type Struct ¶
type Struct struct { Source interface{} // contains filtered or unexported fields }
A Struct, or "S-object", can be used to rapidly and safely inspect, iterate over, and modify values of a struct.
type StructFieldFunc ¶
type StructFieldFunc func(field *reflect.StructField, value reflect.Value) error
type StructValueFunc ¶
type StructValueFunc func(field string, sourceValue interface{}, destValue interface{}) (interface{}, bool)
Receives a struct field name, the value of that field in the source struct, and the value for that field in the destination struct. Returns the value that should be placed in the destination struct fields. If the returned bool is false, no changes will be made.
Click to show internal directories.
Click to hide internal directories.