pkg vdl, const Any Kind
pkg vdl, const Array Kind
pkg vdl, const Bool Kind
pkg vdl, const Byte Kind
pkg vdl, const Complex128 Kind
pkg vdl, const Complex64 Kind
pkg vdl, const Enum Kind
pkg vdl, const Float32 Kind
pkg vdl, const Float64 Kind
pkg vdl, const Int16 Kind
pkg vdl, const Int32 Kind
pkg vdl, const Int64 Kind
pkg vdl, const Int8 Kind
pkg vdl, const List Kind
pkg vdl, const Map Kind
pkg vdl, const Optional Kind
pkg vdl, const Set Kind
pkg vdl, const String Kind
pkg vdl, const Struct Kind
pkg vdl, const TypeObject Kind
pkg vdl, const Uint16 Kind
pkg vdl, const Uint32 Kind
pkg vdl, const Uint64 Kind
pkg vdl, const Union Kind
pkg vdl, const WalkAll WalkMode
pkg vdl, const WalkInline WalkMode
pkg vdl, const WireRetryCodeNoRetry WireRetryCode
pkg vdl, const WireRetryCodeRetryBackoff WireRetryCode
pkg vdl, const WireRetryCodeRetryConnection WireRetryCode
pkg vdl, const WireRetryCodeRetryRefetch WireRetryCode
pkg vdl, func AnyValue(*Value) *Value
pkg vdl, func ArrayType(int, *Type) *Type
pkg vdl, func BoolValue(bool) *Value
pkg vdl, func ByteValue(byte) *Value
pkg vdl, func BytesValue([]byte) *Value
pkg vdl, func Complex128Value(complex128) *Value
pkg vdl, func Complex64Value(complex64) *Value
pkg vdl, func Convert(interface{}, interface{}) error
pkg vdl, func CopyValue(*Value) *Value
pkg vdl, func EnumType(...string) *Type
pkg vdl, func EqualValue(*Value, *Value) bool
pkg vdl, func Float32Value(float32) *Value
pkg vdl, func Float64Value(float64) *Value
pkg vdl, func FromReflect(Target, reflect.Value) error
pkg vdl, func FromValue(Target, *Value) error
pkg vdl, func Int16Value(int16) *Value
pkg vdl, func Int32Value(int32) *Value
pkg vdl, func Int64Value(int64) *Value
pkg vdl, func Int8Value(int8) *Value
pkg vdl, func ListType(*Type) *Type
pkg vdl, func MapType(*Type, *Type) *Type
pkg vdl, func NamedType(string, *Type) *Type
pkg vdl, func NonNilZeroValue(*Type) *Value
pkg vdl, func OptionalType(*Type) *Type
pkg vdl, func OptionalValue(*Value) *Value
pkg vdl, func ReflectTarget(reflect.Value) (Target, error)
pkg vdl, func Register(interface{})
pkg vdl, func RegisterNative(interface{}, interface{})
pkg vdl, func SetType(*Type) *Type
pkg vdl, func SortValuesAsString([]*Value) []*Value
pkg vdl, func SplitIdent(string) (string, string)
pkg vdl, func StringValue(string) *Value
pkg vdl, func StructType(...Field) *Type
pkg vdl, func TypeFromReflect(reflect.Type) (*Type, error)
pkg vdl, func TypeObjectValue(*Type) *Value
pkg vdl, func TypeOf(interface{}) *Type
pkg vdl, func TypeToReflect(*Type) reflect.Type
pkg vdl, func Uint16Value(uint16) *Value
pkg vdl, func Uint32Value(uint32) *Value
pkg vdl, func Uint64Value(uint64) *Value
pkg vdl, func UnionType(...Field) *Type
pkg vdl, func ValueFromReflect(reflect.Value) (*Value, error)
pkg vdl, func ValueOf(interface{}) *Value
pkg vdl, func ValueTarget(*Value) (Target, error)
pkg vdl, func WireRetryCodeFromString(string) (WireRetryCode, error)
pkg vdl, func ZeroValue(*Type) *Value
pkg vdl, method (*Type) AssignableFrom(*Value) bool
pkg vdl, method (*Type) CanBeKey() bool
pkg vdl, method (*Type) CanBeNamed() bool
pkg vdl, method (*Type) CanBeNil() bool
pkg vdl, method (*Type) CanBeOptional() bool
pkg vdl, method (*Type) ContainsAnyOrTypeObject() bool
pkg vdl, method (*Type) ContainsKind(WalkMode, ...Kind) bool
pkg vdl, method (*Type) ContainsType(WalkMode, ...*Type) bool
pkg vdl, method (*Type) Elem() *Type
pkg vdl, method (*Type) EnumIndex(string) int
pkg vdl, method (*Type) EnumLabel(int) string
pkg vdl, method (*Type) Field(int) Field
pkg vdl, method (*Type) FieldByName(string) (Field, int)
pkg vdl, method (*Type) IsBytes() bool
pkg vdl, method (*Type) Key() *Type
pkg vdl, method (*Type) Kind() Kind
pkg vdl, method (*Type) Len() int
pkg vdl, method (*Type) Name() string
pkg vdl, method (*Type) NumEnumLabel() int
pkg vdl, method (*Type) NumField() int
pkg vdl, method (*Type) String() string
pkg vdl, method (*Type) Walk(WalkMode, func(*Type) bool) bool
pkg vdl, method (*TypeBuilder) Array() PendingArray
pkg vdl, method (*TypeBuilder) Build()
pkg vdl, method (*TypeBuilder) Enum() PendingEnum
pkg vdl, method (*TypeBuilder) List() PendingList
pkg vdl, method (*TypeBuilder) Map() PendingMap
pkg vdl, method (*TypeBuilder) Named(string) PendingNamed
pkg vdl, method (*TypeBuilder) Optional() PendingOptional
pkg vdl, method (*TypeBuilder) Set() PendingSet
pkg vdl, method (*TypeBuilder) Struct() PendingStruct
pkg vdl, method (*TypeBuilder) Union() PendingUnion
pkg vdl, method (*Value) Assign(*Value) *Value
pkg vdl, method (*Value) AssignBool(bool) *Value
pkg vdl, method (*Value) AssignBytes([]byte) *Value
pkg vdl, method (*Value) AssignComplex(complex128) *Value
pkg vdl, method (*Value) AssignEnumIndex(int) *Value
pkg vdl, method (*Value) AssignEnumLabel(string) *Value
pkg vdl, method (*Value) AssignFloat(float64) *Value
pkg vdl, method (*Value) AssignInt(int64) *Value
pkg vdl, method (*Value) AssignLen(int) *Value
pkg vdl, method (*Value) AssignMapIndex(*Value, *Value) *Value
pkg vdl, method (*Value) AssignSetKey(*Value) *Value
pkg vdl, method (*Value) AssignString(string) *Value
pkg vdl, method (*Value) AssignTypeObject(*Type) *Value
pkg vdl, method (*Value) AssignUint(uint64) *Value
pkg vdl, method (*Value) AssignUnionField(int, *Value) *Value
pkg vdl, method (*Value) Bool() bool
pkg vdl, method (*Value) Bytes() []byte
pkg vdl, method (*Value) Complex() complex128
pkg vdl, method (*Value) ContainsKey(*Value) bool
pkg vdl, method (*Value) CopyBytes([]byte) *Value
pkg vdl, method (*Value) DeleteSetKey(*Value) *Value
pkg vdl, method (*Value) Elem() *Value
pkg vdl, method (*Value) EnumIndex() int
pkg vdl, method (*Value) EnumLabel() string
pkg vdl, method (*Value) Float() float64
pkg vdl, method (*Value) Index(int) *Value
pkg vdl, method (*Value) Int() int64
pkg vdl, method (*Value) IsNil() bool
pkg vdl, method (*Value) IsValid() bool
pkg vdl, method (*Value) IsZero() bool
pkg vdl, method (*Value) Keys() []*Value
pkg vdl, method (*Value) Kind() Kind
pkg vdl, method (*Value) Len() int
pkg vdl, method (*Value) MapIndex(*Value) *Value
pkg vdl, method (*Value) RawString() string
pkg vdl, method (*Value) String() string
pkg vdl, method (*Value) StructField(int) *Value
pkg vdl, method (*Value) StructFieldByName(string) *Value
pkg vdl, method (*Value) Type() *Type
pkg vdl, method (*Value) TypeObject() *Type
pkg vdl, method (*Value) Uint() uint64
pkg vdl, method (*Value) UnionField() (int, *Value)
pkg vdl, method (*WireRetryCode) Set(string) error
pkg vdl, method (Kind) String() string
pkg vdl, method (WireRetryCode) String() string
pkg vdl, type Field struct
pkg vdl, type Field struct, Name string
pkg vdl, type Field struct, Type *Type
pkg vdl, type FieldsTarget interface { FinishField, StartField }
pkg vdl, type FieldsTarget interface, FinishField(Target, Target) error
pkg vdl, type FieldsTarget interface, StartField(string) (Target, Target, error)
pkg vdl, type Kind uint
pkg vdl, type ListTarget interface { FinishElem, StartElem }
pkg vdl, type ListTarget interface, FinishElem(Target) error
pkg vdl, type ListTarget interface, StartElem(int) (Target, error)
pkg vdl, type MapTarget interface { FinishField, FinishKeyStartField, StartKey }
pkg vdl, type MapTarget interface, FinishField(Target, Target) error
pkg vdl, type MapTarget interface, FinishKeyStartField(Target) (Target, error)
pkg vdl, type MapTarget interface, StartKey() (Target, error)
pkg vdl, type PendingArray interface, AssignElem(TypeOrPending) PendingArray
pkg vdl, type PendingArray interface, AssignLen(int) PendingArray
pkg vdl, type PendingArray interface, Built() (*Type, error)
pkg vdl, type PendingArray interface, unexported methods
pkg vdl, type PendingEnum interface, AppendLabel(string) PendingEnum
pkg vdl, type PendingEnum interface, Built() (*Type, error)
pkg vdl, type PendingEnum interface, unexported methods
pkg vdl, type PendingList interface, AssignElem(TypeOrPending) PendingList
pkg vdl, type PendingList interface, Built() (*Type, error)
pkg vdl, type PendingList interface, unexported methods
pkg vdl, type PendingMap interface, AssignElem(TypeOrPending) PendingMap
pkg vdl, type PendingMap interface, AssignKey(TypeOrPending) PendingMap
pkg vdl, type PendingMap interface, Built() (*Type, error)
pkg vdl, type PendingMap interface, unexported methods
pkg vdl, type PendingNamed interface, AssignBase(TypeOrPending) PendingNamed
pkg vdl, type PendingNamed interface, Built() (*Type, error)
pkg vdl, type PendingNamed interface, unexported methods
pkg vdl, type PendingOptional interface, AssignElem(TypeOrPending) PendingOptional
pkg vdl, type PendingOptional interface, Built() (*Type, error)
pkg vdl, type PendingOptional interface, unexported methods
pkg vdl, type PendingSet interface, AssignKey(TypeOrPending) PendingSet
pkg vdl, type PendingSet interface, Built() (*Type, error)
pkg vdl, type PendingSet interface, unexported methods
pkg vdl, type PendingStruct interface, AppendField(string, TypeOrPending) PendingStruct
pkg vdl, type PendingStruct interface, Built() (*Type, error)
pkg vdl, type PendingStruct interface, NumField() int
pkg vdl, type PendingStruct interface, unexported methods
pkg vdl, type PendingType interface, Built() (*Type, error)
pkg vdl, type PendingType interface, unexported methods
pkg vdl, type PendingUnion interface, AppendField(string, TypeOrPending) PendingUnion
pkg vdl, type PendingUnion interface, Built() (*Type, error)
pkg vdl, type PendingUnion interface, NumField() int
pkg vdl, type PendingUnion interface, unexported methods
pkg vdl, type SetTarget interface { FinishKey, StartKey }
pkg vdl, type SetTarget interface, FinishKey(Target) error
pkg vdl, type SetTarget interface, StartKey() (Target, error)
pkg vdl, type Target interface { FinishFields, FinishList, FinishMap, FinishSet, FromBool, FromBytes, FromComplex, FromEnumLabel, FromFloat, FromInt, FromNil, FromString, FromTypeObject, FromUint, StartFields, StartList, StartMap, StartSet }
pkg vdl, type Target interface, FinishFields(FieldsTarget) error
pkg vdl, type Target interface, FinishList(ListTarget) error
pkg vdl, type Target interface, FinishMap(MapTarget) error
pkg vdl, type Target interface, FinishSet(SetTarget) error
pkg vdl, type Target interface, FromBool(bool, *Type) error
pkg vdl, type Target interface, FromBytes([]byte, *Type) error
pkg vdl, type Target interface, FromComplex(complex128, *Type) error
pkg vdl, type Target interface, FromEnumLabel(string, *Type) error
pkg vdl, type Target interface, FromFloat(float64, *Type) error
pkg vdl, type Target interface, FromInt(int64, *Type) error
pkg vdl, type Target interface, FromNil(*Type) error
pkg vdl, type Target interface, FromString(string, *Type) error
pkg vdl, type Target interface, FromTypeObject(*Type) error
pkg vdl, type Target interface, FromUint(uint64, *Type) error
pkg vdl, type Target interface, StartFields(*Type) (FieldsTarget, error)
pkg vdl, type Target interface, StartList(*Type, int) (ListTarget, error)
pkg vdl, type Target interface, StartMap(*Type, int) (MapTarget, error)
pkg vdl, type Target interface, StartSet(*Type, int) (SetTarget, error)
pkg vdl, type Type struct
pkg vdl, type TypeBuilder struct
pkg vdl, type TypeOrPending interface, unexported methods
pkg vdl, type Value struct
pkg vdl, type WalkMode int
pkg vdl, type WireError struct
pkg vdl, type WireError struct, Id string
pkg vdl, type WireError struct, Msg string
pkg vdl, type WireError struct, ParamList []*Value
pkg vdl, type WireError struct, RetryCode WireRetryCode
pkg vdl, type WireRetryCode int
pkg vdl, var AnyType *Type
pkg vdl, var BoolType *Type
pkg vdl, var ByteType *Type
pkg vdl, var Complex128Type *Type
pkg vdl, var Complex64Type *Type
pkg vdl, var ErrFieldNoExist error
pkg vdl, var ErrorType *Type
pkg vdl, var Float32Type *Type
pkg vdl, var Float64Type *Type
pkg vdl, var Int16Type *Type
pkg vdl, var Int32Type *Type
pkg vdl, var Int64Type *Type
pkg vdl, var Int8Type *Type
pkg vdl, var StringType *Type
pkg vdl, var TypeObjectType *Type
pkg vdl, var Uint16Type *Type
pkg vdl, var Uint32Type *Type
pkg vdl, var Uint64Type *Type
pkg vdl, var WireRetryCodeAll [...]WireRetryCode
