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.