Documentation ¶
Index ¶
Constants ¶
View Source
const (
PathsFieldName = "paths"
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type FieldMask ¶
type FieldMask interface { fmt.Stringer proto.Message // ToProtoFieldMask converts to google.protobuf.FieldMask ToProtoFieldMask() *fieldmaskpb.FieldMask // FromProtoFieldMask erases current contents and re-fills using // paths provided by google.protobuf.FieldMask FromProtoFieldMask(*fieldmaskpb.FieldMask) error // AppendRawPath appends new field path AppendRawPath(path FieldPath) // SubtractRaw creates new FieldMask by subtracting current // instance from the one given as argument. // Subtracting operation is using following rules: // * F1 {A, C} - F2 {A, B} = F3 {C} (A removes A) // * F1 {A} - F2 {A.B} = F3 {A.X1, ... A.Xn} (where X // is any possible subpath of A that is not B). // Exception to this rule are field paths containing // map keys, where possible Xn combinations are // open-ended. Sub-paths ending on map leaves are // ignored in F2 (left side argument). // * F1 {A.B} - F2 {A} = F3 {} (if we remove A, we remove // all sub-paths of A too). SubtractRaw(other FieldMask) FieldMask // GetRawPaths returns all current field paths GetRawPaths() []FieldPath // IsFull indicates if mask is full. Mask is considered as // full, if proto.Equal(a, mask.CloneRaw(a)) equals // true. IsFull() bool // SetRaw copies shallowly values pointed by internally hold // fields paths from source to the target. SetRaw(target, source GotenObjectExt) // ProjectRaw makes projection (shallow copy) of the given // resource for internal field paths only. // If the mask is nil, then same object is returned. ProjectRaw(source GotenObjectExt) GotenObjectExt // PathsCount returns number of field paths included PathsCount() int }
FieldMask describes an interface Interface of goten field mask.
type FieldPath ¶
type FieldPath interface { fmt.Stringer JSONString() string GetRaw(proto.Message) []interface{} GetSingleRaw(proto.Message) (interface{}, bool) GetDefault() interface{} ClearValueRaw(item proto.Message) WithRawIValue(value interface{}) FieldPathValue WithRawIArrayOfValues(values interface{}) FieldPathArrayOfValues WithRawIArrayItemValue(value interface{}) FieldPathArrayItemValue IsLeaf() bool SplitIntoTerminalIPaths() []FieldPath }
type FieldPathArrayItemValue ¶
type FieldPathArrayItemValue interface { FieldPath GetRawItemValue() interface{} }
func ParseFieldPathArrayItemValue ¶
func ParseFieldPathArrayItemValue(fp FieldPath, valueStr string) (FieldPathArrayItemValue, error)
type FieldPathArrayOfValues ¶
type FieldPathArrayOfValues interface { FieldPath GetRawValues() []interface{} }
func ParseFieldPathArrayOfValues ¶
func ParseFieldPathArrayOfValues(fp FieldPath, valuesStr string) (FieldPathArrayOfValues, error)
type FieldPathValue ¶
type FieldPathValue interface { FieldPath GetRawValue() interface{} SetToRaw(target proto.Message) CompareWithRaw(msg proto.Message) (cmp int, comparable bool) }
func ParseFieldPathValue ¶
func ParseFieldPathValue(fp FieldPath, valueStr string) (FieldPathValue, error)
type GotenObjectExt ¶
type GotenObjectExt interface { fmt.Stringer proto.Message GotenObjectExt() // CloneRaw clones current object. CloneRaw() GotenObjectExt // MergeRaw merges provided source into current object. MergeRaw(GotenObjectExt) // MakeRawFullFieldMask returns full mask. Full field mask contains // paths of all fields without sub paths items, // as it is considered that field path already contains // sub paths. MakeRawFullFieldMask() FieldMask // MakeRawDiffFieldMask returns diff mask compared with given resource. // Panics, if other resource is not of same type. MakeRawDiffFieldMask(other GotenObjectExt) FieldMask }
GotenObjectExt is implemented by a Go representation of a protobuf message for which protoc-goten-gen-object plugin was used. GotenObjectExt is basically an extension of a regular go-protobuf object containing many additional goten-specific features like type-safe embedded field paths, field masks, diff support, customized merge support etc. Those extensions are mandatory resources, optional for others.
type RawFieldPath ¶
type RawFieldPath []string
func ParseRawFieldPath ¶
func ParseRawFieldPath(rawPath string) (RawFieldPath, error)
func (RawFieldPath) LastItem ¶
func (fp RawFieldPath) LastItem() string
func (RawFieldPath) String ¶
func (fp RawFieldPath) String() string
Click to show internal directories.
Click to hide internal directories.