Documentation ¶
Index ¶
- func ProtoToStruct(fm *types.FieldMask, src, dst interface{}, opts ...interface{}) error
- func StructToMap(filter FieldFilter, src interface{}, dst map[string]interface{}) error
- func StructToStruct(filter FieldFilter, src, dst interface{}) error
- type FieldFilter
- type Mask
- type MaskInverse
- type Naming
- type Whitelist
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ProtoToStruct ¶
func StructToMap ¶
func StructToMap( filter FieldFilter, src interface{}, dst map[string]interface{}, ) error
StructToMap copies `src` struct to the `dst` map. Behavior is similar to `StructToStruct`.
func StructToStruct ¶
func StructToStruct(filter FieldFilter, src, dst interface{}) error
StructToStruct copies `src` struct to `dst` struct using the given FieldFilter. Only the fields where FieldFilter returns true will be copied to `dst`. `src` and `dst` must be coherent in terms of the field names, but it is not required for them to be of the same type.
Types ¶
type FieldFilter ¶
type FieldFilter interface { // Filter should return a corresponding FieldFilter for the given fieldName and Filter(fieldName string) (FieldFilter, bool) StructToMap(in interface{}) (map[string]interface{}, error) }
FieldFilter is an interface used by the copying function to filter fields that are needed to be copied.
type Mask ¶
type Mask map[string]FieldFilter
Mask is a tree-based implementation of a FieldFilter.
func MaskFromProtoFieldMask ¶
MaskFromProtoFieldMask creates a Mask from the given FieldMask.
func MaskFromString ¶
MaskFromString creates a `Mask` from a string `s`. `s` is supposed to be a valid string representation of a FieldFilter like "a,b,c{d,e{f,g}},d". This is the same string format as in FieldFilter.String(). This function should only be used in tests as it does not validate the given string and is only convenient to easily create DefaultMasks.
func (Mask) Filter ¶
func (m Mask) Filter(fieldName string) (FieldFilter, bool)
Filter returns true for those fieldNames that exist in the underlying map. Field names that start with "XXX_" are ignored as unexported.
func (Mask) StructToMap ¶
type MaskInverse ¶
type MaskInverse Mask
MaskInverse is an inversed version of a Mask (will copy all the fields except those mentioned in the mask).
func (MaskInverse) Filter ¶
func (m MaskInverse) Filter(fieldName string) (FieldFilter, bool)
Filter returns true for those fieldNames that do NOT exist in the underlying map. Field names that start with "XXX_" are ignored as unexported.
func (MaskInverse) String ¶
func (m MaskInverse) String() string
func (MaskInverse) StructToMap ¶
func (m MaskInverse) StructToMap(in interface{}) (map[string]interface{}, error)