Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ArrayValueVisitor ¶
type ArrayValueVisitor interface { OnBoolArray([]bool) error OnStringArray([]string) error // int OnInt8Array([]int8) error OnInt16Array([]int16) error OnInt32Array([]int32) error OnInt64Array([]int64) error OnIntArray([]int) error // uint OnBytes([]byte) error OnUint8Array([]uint8) error OnUint16Array([]uint16) error OnUint32Array([]uint32) error OnUint64Array([]uint64) error OnUintArray([]uint) error // float OnFloat32Array([]float32) error OnFloat64Array([]float64) error }
ArrayValueVisitor passes arrays with known type. Implementation of ArrayValueVisitor is optional.
type ArrayVisitor ¶
type ArrayVisitor interface { // OnArrayStart is called whan a new array is going to be reported. // // The `len` argument should report the length if known. `len` MUST BE -1 if // the length of the array is not known. The BaseType should indicate the // element type of the array. If the element type is unknown or can be any // type (e.g. interface{}), AnyType must be used. OnArrayStart(len int, baseType BaseType) error // OnArrayFinished indicates that there are no more elements in the array. OnArrayFinished() error }
ArrayVisitor defines the support for arrays/slices in the Data Model.
type ExtVisitor ¶
type ExtVisitor interface { Visitor ArrayValueVisitor ObjectValueVisitor StringRefVisitor }
ExtVisitor interface defines the Extended Data Model. Usage and implementation of the Extended Data Model is optional, but can speed up operations.
func EnsureExtVisitor ¶
func EnsureExtVisitor(v Visitor) ExtVisitor
EnsureExtVisitor converts a Visitor into an ExtVisitor. If v already implements ExtVisitor, it is directly implemented. If v only implements a subset of ExtVisitor, then conversions for the missing interfaces will be created.
type ObjectValueVisitor ¶
type ObjectValueVisitor interface { OnBoolObject(map[string]bool) error OnStringObject(map[string]string) error // int OnInt8Object(map[string]int8) error OnInt16Object(map[string]int16) error OnInt32Object(map[string]int32) error OnInt64Object(map[string]int64) error OnIntObject(map[string]int) error // uint OnUint8Object(map[string]uint8) error OnUint16Object(map[string]uint16) error OnUint32Object(map[string]uint32) error OnUint64Object(map[string]uint64) error OnUintObject(map[string]uint) error // float OnFloat32Object(map[string]float32) error OnFloat64Object(map[string]float64) error }
ObjectValueVisitor passes map[string]T. Implementation of ObjectValueVisitor is optional.
type ObjectVisitor ¶
type ObjectVisitor interface { // OnObjectStart is called when a new object (key-value pairs) is going to be reported. // A call to OnKey or OnObjectFinished must follow directly. OnObjectStart(len int, baseType BaseType) error // OnArrayFinished indicates that there are no more key value pairs to report. OnObjectFinished() error // OnKey adds a new key to the object. A value must directly follow a call to OnKey. OnKey(s string) error }
ObjectVisitor iterates all fields in a dictionary like structure.
type StringRefVisitor ¶
StringRefVisitor handles strings by reference into a byte string. The reference must be processed immediately, as the string passed might get modified after the callback returns.
func MakeStringRefVisitor ¶
func MakeStringRefVisitor(v Visitor) StringRefVisitor
type ValueVisitor ¶
type ValueVisitor interface { // untyped nil value OnNil() error OnBool(b bool) error OnString(s string) error // int OnInt8(i int8) error OnInt16(i int16) error OnInt32(i int32) error OnInt64(i int64) error OnInt(i int) error // uint OnByte(b byte) error OnUint8(u uint8) error OnUint16(u uint16) error OnUint32(u uint32) error OnUint64(u uint64) error OnUint(u uint) error // float OnFloat32(f float32) error OnFloat64(f float64) error }
ValueVisitor defines the set of supported primitive types in the Data Model.
type Visitor ¶
type Visitor interface { ObjectVisitor ArrayVisitor ValueVisitor }
Visitor interface for accepting events. The Vistor defined the common Data Model all serializers should accept and all deserializers must implement.