pkg vom, const ControlKindEnd ControlKind
pkg vom, const ControlKindIncompleteType ControlKind
pkg vom, const ControlKindNil ControlKind
pkg vom, const DefaultVersion Version
pkg vom, const DumpKindAnyLensLen DumpKind
pkg vom, const DumpKindAnyMsgLen DumpKind
pkg vom, const DumpKindByteLen DumpKind
pkg vom, const DumpKindControl DumpKind
pkg vom, const DumpKindIndex DumpKind
pkg vom, const DumpKindMsgId DumpKind
pkg vom, const DumpKindMsgLen DumpKind
pkg vom, const DumpKindPrimValue DumpKind
pkg vom, const DumpKindTypeId DumpKind
pkg vom, const DumpKindTypeIdsLen DumpKind
pkg vom, const DumpKindTypeMsg DumpKind
pkg vom, const DumpKindValueLen DumpKind
pkg vom, const DumpKindValueMsg DumpKind
pkg vom, const DumpKindVersion DumpKind
pkg vom, const DumpKindWireTypeIndex DumpKind
pkg vom, const Version80 Version
pkg vom, const Version81 Version
pkg vom, const WireCtrlEnd byte
pkg vom, const WireCtrlNil byte
pkg vom, const WireCtrlTypeIncomplete byte
pkg vom, const WireIdAny TypeId
pkg vom, const WireIdBool TypeId
pkg vom, const WireIdByte TypeId
pkg vom, const WireIdByteList TypeId
pkg vom, const WireIdFirstUserType TypeId
pkg vom, const WireIdFloat32 TypeId
pkg vom, const WireIdFloat64 TypeId
pkg vom, const WireIdInt16 TypeId
pkg vom, const WireIdInt32 TypeId
pkg vom, const WireIdInt64 TypeId
pkg vom, const WireIdInt8 TypeId
pkg vom, const WireIdString TypeId
pkg vom, const WireIdStringList TypeId
pkg vom, const WireIdTypeObject TypeId
pkg vom, const WireIdUint16 TypeId
pkg vom, const WireIdUint32 TypeId
pkg vom, const WireIdUint64 TypeId
pkg vom, func ControlKindFromString(string) (ControlKind, error)
pkg vom, func Decode([]byte, interface{}) error
pkg vom, func Dump([]byte) (string, error)
pkg vom, func DumpKindFromString(string) (DumpKind, error)
pkg vom, func Encode(interface{}) ([]byte, error)
pkg vom, func NewDecoder(io.Reader) *Decoder
pkg vom, func NewDecoderWithTypeDecoder(io.Reader, *TypeDecoder) *Decoder
pkg vom, func NewDumpWriter(io.Writer) DumpWriter
pkg vom, func NewDumper(DumpWriter) *Dumper
pkg vom, func NewEncoder(io.Writer) *Encoder
pkg vom, func NewEncoderWithTypeEncoder(io.Writer, *TypeEncoder) *Encoder
pkg vom, func NewTypeDecoder(io.Reader) *TypeDecoder
pkg vom, func NewTypeEncoder(io.Writer) *TypeEncoder
pkg vom, func NewVersionedEncoder(Version, io.Writer) *Encoder
pkg vom, func NewVersionedEncoderWithTypeEncoder(Version, io.Writer, *TypeEncoder) *Encoder
pkg vom, func NewVersionedTypeEncoder(Version, io.Writer) *TypeEncoder
pkg vom, func NewVersionedXEncoder(Version, io.Writer) *XEncoder
pkg vom, func NewVersionedXEncoderWithTypeEncoder(Version, io.Writer, *TypeEncoder) *XEncoder
pkg vom, func NewXDecoder(io.Reader) *XDecoder
pkg vom, func NewXDecoderWithTypeDecoder(io.Reader, *TypeDecoder) *XDecoder
pkg vom, func NewXEncoder(io.Writer) *XEncoder
pkg vom, func NewXEncoderWithTypeEncoder(io.Writer, *TypeEncoder) *XEncoder
pkg vom, func RawBytesFromValue(interface{}) (*RawBytes, error)
pkg vom, func RawBytesOf(interface{}) *RawBytes
pkg vom, func VDLReadPrimitive(vdl.Decoder, *Primitive) error
pkg vom, func VersionedEncode(Version, interface{}) ([]byte, error)
pkg vom, method (*ControlKind) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (*ControlKind) MakeVDLTarget() vdl.Target
pkg vom, method (*ControlKind) Set(string) error
pkg vom, method (*ControlKind) VDLRead(vdl.Decoder) error
pkg vom, method (*ControlKindTarget) FromEnumLabel(string, *vdl.Type) error
pkg vom, method (*Decoder) Decode(interface{}) error
pkg vom, method (*Decoder) Ignore() error
pkg vom, method (*DumpAtom) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (*DumpAtom) MakeVDLTarget() vdl.Target
pkg vom, method (*DumpAtom) VDLRead(vdl.Decoder) error
pkg vom, method (*DumpAtomTarget) FinishField(vdl.Target, vdl.Target) error
pkg vom, method (*DumpAtomTarget) FinishFields(vdl.FieldsTarget) error
pkg vom, method (*DumpAtomTarget) StartField(string) (vdl.Target, vdl.Target, error)
pkg vom, method (*DumpAtomTarget) StartFields(*vdl.Type) (vdl.FieldsTarget, error)
pkg vom, method (*DumpAtomTarget) ZeroField(string) error
pkg vom, method (*DumpKind) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (*DumpKind) MakeVDLTarget() vdl.Target
pkg vom, method (*DumpKind) Set(string) error
pkg vom, method (*DumpKind) VDLRead(vdl.Decoder) error
pkg vom, method (*DumpKindTarget) FromEnumLabel(string, *vdl.Type) error
pkg vom, method (*Dumper) Close() error
pkg vom, method (*Dumper) Flush() error
pkg vom, method (*Dumper) Status()
pkg vom, method (*Dumper) Write([]byte) (int, error)
pkg vom, method (*Encoder) Encode(interface{}) error
pkg vom, method (*PrimitiveTarget) FinishField(vdl.Target, vdl.Target) error
pkg vom, method (*PrimitiveTarget) FinishFields(vdl.FieldsTarget) error
pkg vom, method (*PrimitiveTarget) StartField(string) (vdl.Target, vdl.Target, error)
pkg vom, method (*PrimitiveTarget) StartFields(*vdl.Type) (vdl.FieldsTarget, error)
pkg vom, method (*RawBytes) Decoder() vdl.Decoder
pkg vom, method (*RawBytes) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (*RawBytes) IsNil() bool
pkg vom, method (*RawBytes) MakeVDLTarget() vdl.Target
pkg vom, method (*RawBytes) String() string
pkg vom, method (*RawBytes) ToValue(interface{}) error
pkg vom, method (*RawBytes) VDLRead(vdl.Decoder) error
pkg vom, method (*RawBytes) VDLWrite(vdl.Encoder) error
pkg vom, method (*TypeDecoder) Start()
pkg vom, method (*TypeDecoder) Stop()
pkg vom, method (*TypeId) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (*TypeId) MakeVDLTarget() vdl.Target
pkg vom, method (*TypeId) VDLRead(vdl.Decoder) error
pkg vom, method (*TypeIdTarget) FromFloat(float64, *vdl.Type) error
pkg vom, method (*TypeIdTarget) FromInt(int64, *vdl.Type) error
pkg vom, method (*TypeIdTarget) FromUint(uint64, *vdl.Type) error
pkg vom, method (*XDecoder) Decode(interface{}) error
pkg vom, method (*XDecoder) Decoder() vdl.Decoder
pkg vom, method (*XDecoder) Ignore() error
pkg vom, method (*XEncoder) Encode(interface{}) error
pkg vom, method (*XEncoder) Encoder() vdl.Encoder
pkg vom, method (ControlKind) String() string
pkg vom, method (ControlKind) VDLWrite(vdl.Encoder) error
pkg vom, method (DumpAtom) String() string
pkg vom, method (DumpAtom) VDLWrite(vdl.Encoder) error
pkg vom, method (DumpKind) String() string
pkg vom, method (DumpKind) VDLWrite(vdl.Encoder) error
pkg vom, method (DumpStatus) String() string
pkg vom, method (PrimitivePBool) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (PrimitivePBool) Index() int
pkg vom, method (PrimitivePBool) Interface() interface{}
pkg vom, method (PrimitivePBool) MakeVDLTarget() vdl.Target
pkg vom, method (PrimitivePBool) Name() string
pkg vom, method (PrimitivePBool) VDLWrite(vdl.Encoder) error
pkg vom, method (PrimitivePByte) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (PrimitivePByte) Index() int
pkg vom, method (PrimitivePByte) Interface() interface{}
pkg vom, method (PrimitivePByte) MakeVDLTarget() vdl.Target
pkg vom, method (PrimitivePByte) Name() string
pkg vom, method (PrimitivePByte) VDLWrite(vdl.Encoder) error
pkg vom, method (PrimitivePControl) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (PrimitivePControl) Index() int
pkg vom, method (PrimitivePControl) Interface() interface{}
pkg vom, method (PrimitivePControl) MakeVDLTarget() vdl.Target
pkg vom, method (PrimitivePControl) Name() string
pkg vom, method (PrimitivePControl) VDLWrite(vdl.Encoder) error
pkg vom, method (PrimitivePFloat) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (PrimitivePFloat) Index() int
pkg vom, method (PrimitivePFloat) Interface() interface{}
pkg vom, method (PrimitivePFloat) MakeVDLTarget() vdl.Target
pkg vom, method (PrimitivePFloat) Name() string
pkg vom, method (PrimitivePFloat) VDLWrite(vdl.Encoder) error
pkg vom, method (PrimitivePInt) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (PrimitivePInt) Index() int
pkg vom, method (PrimitivePInt) Interface() interface{}
pkg vom, method (PrimitivePInt) MakeVDLTarget() vdl.Target
pkg vom, method (PrimitivePInt) Name() string
pkg vom, method (PrimitivePInt) VDLWrite(vdl.Encoder) error
pkg vom, method (PrimitivePString) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (PrimitivePString) Index() int
pkg vom, method (PrimitivePString) Interface() interface{}
pkg vom, method (PrimitivePString) MakeVDLTarget() vdl.Target
pkg vom, method (PrimitivePString) Name() string
pkg vom, method (PrimitivePString) VDLWrite(vdl.Encoder) error
pkg vom, method (PrimitivePUint) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, method (PrimitivePUint) Index() int
pkg vom, method (PrimitivePUint) Interface() interface{}
pkg vom, method (PrimitivePUint) MakeVDLTarget() vdl.Target
pkg vom, method (PrimitivePUint) Name() string
pkg vom, method (PrimitivePUint) VDLWrite(vdl.Encoder) error
pkg vom, method (TypeId) VDLWrite(vdl.Encoder) error
pkg vom, method (Version) String() string
pkg vom, type ControlKind int
pkg vom, type ControlKindTarget struct
pkg vom, type ControlKindTarget struct, Value *ControlKind
pkg vom, type ControlKindTarget struct, embedded vdl.TargetBase
pkg vom, type Decoder struct
pkg vom, type DumpAtom struct
pkg vom, type DumpAtom struct, Bytes []byte
pkg vom, type DumpAtom struct, Data Primitive
pkg vom, type DumpAtom struct, Debug string
pkg vom, type DumpAtom struct, Kind DumpKind
pkg vom, type DumpAtomTarget struct
pkg vom, type DumpAtomTarget struct, Value *DumpAtom
pkg vom, type DumpAtomTarget struct, embedded vdl.FieldsTargetBase
pkg vom, type DumpAtomTarget struct, embedded vdl.TargetBase
pkg vom, type DumpKind int
pkg vom, type DumpKindTarget struct
pkg vom, type DumpKindTarget struct, Value *DumpKind
pkg vom, type DumpKindTarget struct, embedded vdl.TargetBase
pkg vom, type DumpStatus struct
pkg vom, type DumpStatus struct, Buf []byte
pkg vom, type DumpStatus struct, Debug string
pkg vom, type DumpStatus struct, Err error
pkg vom, type DumpStatus struct, MsgId int64
pkg vom, type DumpStatus struct, MsgLen int
pkg vom, type DumpStatus struct, MsgN int
pkg vom, type DumpStatus struct, RefAnyLens []uint64
pkg vom, type DumpStatus struct, RefTypes []*vdl.Type
pkg vom, type DumpStatus struct, Value *vdl.Value
pkg vom, type DumpWriter interface { WriteAtom, WriteStatus }
pkg vom, type DumpWriter interface, WriteAtom(DumpAtom)
pkg vom, type DumpWriter interface, WriteStatus(DumpStatus)
pkg vom, type Dumper struct
pkg vom, type Encoder struct
pkg vom, type Primitive interface, FillVDLTarget(vdl.Target, *vdl.Type) error
pkg vom, type Primitive interface, Index() int
pkg vom, type Primitive interface, Interface() interface{}
pkg vom, type Primitive interface, Name() string
pkg vom, type Primitive interface, VDLWrite(vdl.Encoder) error
pkg vom, type Primitive interface, unexported methods
pkg vom, type PrimitivePBool struct
pkg vom, type PrimitivePBool struct, Value bool
pkg vom, type PrimitivePByte struct
pkg vom, type PrimitivePByte struct, Value byte
pkg vom, type PrimitivePControl struct
pkg vom, type PrimitivePControl struct, Value ControlKind
pkg vom, type PrimitivePFloat struct
pkg vom, type PrimitivePFloat struct, Value float64
pkg vom, type PrimitivePInt struct
pkg vom, type PrimitivePInt struct, Value int64
pkg vom, type PrimitivePString struct
pkg vom, type PrimitivePString struct, Value string
pkg vom, type PrimitivePUint struct
pkg vom, type PrimitivePUint struct, Value uint64
pkg vom, type PrimitiveTarget struct
pkg vom, type PrimitiveTarget struct, Value *Primitive
pkg vom, type PrimitiveTarget struct, embedded vdl.FieldsTargetBase
pkg vom, type PrimitiveTarget struct, embedded vdl.TargetBase
pkg vom, type RawBytes struct
pkg vom, type RawBytes struct, AnyLengths []int
pkg vom, type RawBytes struct, Data []byte
pkg vom, type RawBytes struct, RefTypes []*vdl.Type
pkg vom, type RawBytes struct, Type *vdl.Type
pkg vom, type RawBytes struct, Version Version
pkg vom, type TypeDecoder struct
pkg vom, type TypeEncoder struct
pkg vom, type TypeId uint64
pkg vom, type TypeIdTarget struct
pkg vom, type TypeIdTarget struct, Value *TypeId
pkg vom, type TypeIdTarget struct, embedded vdl.TargetBase
pkg vom, type Version byte
pkg vom, type XDecoder struct
pkg vom, type XEncoder struct
pkg vom, var ControlKindAll [...]ControlKind
pkg vom, var DumpKindAll [...]DumpKind
