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, func VersionedXEncode(Version, interface{}) ([]byte, error)
pkg vom, func XDecode([]byte, interface{}) 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) VDLIsZero() bool
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) VDLIsZero() bool
pkg vom, method (ControlKind) VDLWrite(vdl.Encoder) error
pkg vom, method (DumpAtom) String() string
pkg vom, method (DumpAtom) VDLIsZero() bool
pkg vom, method (DumpAtom) VDLWrite(vdl.Encoder) error
pkg vom, method (DumpKind) String() string
pkg vom, method (DumpKind) VDLIsZero() bool
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) VDLIsZero() bool
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) VDLIsZero() bool
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) VDLIsZero() bool
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) VDLIsZero() bool
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) VDLIsZero() bool
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) VDLIsZero() bool
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) VDLIsZero() bool
pkg vom, method (PrimitivePUint) VDLWrite(vdl.Encoder) error
pkg vom, method (TypeId) VDLIsZero() bool
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, VDLIsZero() bool
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
