Documentation
¶
Index ¶
- Constants
- type AliasContainer
- type AllowNil0
- type AllowNil1
- type AllowNil10
- type AllowNilHalfFull
- type AllowNilLotsOFields
- type AllowNilOmitEmpty
- type AllowNilOmitEmpty2
- type Any
- type Array16
- type Array8
- type ArrayConstants
- type ArrayMapKey
- type Block
- type ClearOmitted0
- type ClearOmitted1
- type ClearOmittedA
- type ClearOmittedTuple
- type Common
- type CompatibleArray8
- type CompatibleFloat32
- type CompatibleFloat64
- type CompatibleInt
- type CompatibleMapString
- type CompatibleSliceInt
- type CompatibleStructA
- type CompatibleStructB
- type CompatibleStructC
- type CompatibleStructD
- type CompatibleStructI
- type CompatibleStructS
- type ConvertErr
- type ConvertErrVal
- type ConvertIntf
- type ConvertIntfVal
- type ConvertString
- type ConvertStringMapValue
- type ConvertStringSlice
- type ConvertStringVal
- type Custom
- type CustomBytes
- type CustomInt
- type CustomTag
- type Dummy
- type Duration
- type EmbeddableStruct
- type EmbeddableStruct2
- type EmbeddableStruct2AN
- type EmbeddableStruct2Pointer
- type EmbeddableStructAN
- type EmbeddableStructCO
- type EmbeddableStructCO2
- type EmbeddableStructOZ
- type EmbeddableStructOZ2
- type EmbeddableStructPointer
- type Embedded
- type EmptyStruct
- type ErrorCtxAsMap
- type ErrorCtxAsTuple
- type ErrorCtxMapChild
- type ErrorCtxMapChildNotInline
- type ErrorCtxTupleChild
- type ErrorCtxTupleChildNotInline
- type ExternalArr
- type ExternalInt
- type ExternalString
- type F64
- type FastAlias
- type FileHandle
- type Files
- type Fixed
- type Float32
- type Float64
- type Floats
- type Flob
- type Flobbity
- type Flobs
- type Foo
- type GetUserRequest
- type GetUserRequestWithEmbeddedStruct
- type Insane
- type Int
- type IntA
- type IntB
- type IntC
- type Issue102
- type Issue102MapUsesTuple
- type Issue102Tuple
- type Issue102TupleDeep
- type Issue102TupleUsesMap
- type Issue102TupleUsesTuple
- type Issue102Uses
- type Issue102deep
- type Issue191
- type MapAny
- type MapString
- type MyEnum
- type MyMapKeyStruct
- type MyMapKeyStruct2
- type MyMapKeyStruct3
- type MyStringType
- type NamedBool
- type NamedBoolPointer
- type NamedFloat64
- type NamedFloat64Pointer
- type NamedInt
- type NamedIntPointer
- type NamedMapStringPointer
- type NamedMapStringPointer2
- type NamedMapStructPointer
- type NamedMapStructPointer2
- type NamedString
- type NamedStringCO
- type NamedStringOZ
- type NamedStringPointer
- type NamedStruct
- type NamedStructAN
- type NamedStructCO
- type NamedStructOZ
- type NamedStructPointer
- type NewTime
- type NoAllowNil
- type NonMsgStructTags
- type NotAllowNil10
- type NotOmitEmpty10
- type NumberJSONSample
- type NumberJSONSampleReplace
- type Numberwang
- type Object
- type OmitEmpty0
- type OmitEmpty10
- type OmitEmptyHalfFull
- type OmitEmptyLotsOFields
- type OmitEmptyNoName
- type OmitZero0
- type OmitZero1
- type OmitZeroA
- type OmitZeroExt
- func (o *OmitZeroExt) DecodeMsg(dc *msgp.Reader) (err error)
- func (o OmitZeroExt) EncodeMsg(en *msgp.Writer) (err error)
- func (o OmitZeroExt) IsZero() bool
- func (o OmitZeroExt) MarshalMsg(b []byte) (ret []byte, err error)
- func (o OmitZeroExt) Msgsize() (s int)
- func (o *OmitZeroExt) UnmarshalMsg(bts []byte) (ret []byte, err error)
- type OmitZeroExtPtr
- func (o *OmitZeroExtPtr) DecodeMsg(dc *msgp.Reader) (err error)
- func (o *OmitZeroExtPtr) EncodeMsg(en *msgp.Writer) (err error)
- func (o *OmitZeroExtPtr) IsZero() bool
- func (o *OmitZeroExtPtr) MarshalMsg(b []byte) (ret []byte, err error)
- func (o *OmitZeroExtPtr) Msgsize() (s int)
- func (o *OmitZeroExtPtr) UnmarshalMsg(bts []byte) (ret []byte, err error)
- type OmitZeroTuple
- type Pointer0
- type PointerHalfFull
- type PointerNoName
- type SetOf
- type SetOfTuple
- type SliceInt
- type SliceString
- type SpecialID
- type String
- type StructA
- type StructB
- type StructByteSlice
- type StructC
- type StructD
- type StructI
- type StructS
- type T
- type TestBench
- type TestFast
- type TestHidden
- type TestObj
- type TestType
- type Things
- type Time
- type Tree
- type TypeSample
- type TypeSamples
- type Uint
- type Wrapper
- type X
Constants ¶
const ( ConstantInt int = 8 ConstantInt8 int8 = 8 ConstantInt16 int16 = 8 ConstantInt32 int32 = 8 ConstantInt64 int64 = 8 ConstantUint uint = 8 ConstantUint8 uint8 = 8 ConstantUint16 uint16 = 8 ConstantUint32 uint32 = 8 ConstantUint64 uint64 = 8 )
Ensure all different widths of integer can be used as constant keys.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AllowNil0 ¶ added in v1.1.7
type AllowNil0 struct {
ABool bool `msg:"abool,allownil"`
AInt int `msg:"aint,allownil"`
AInt8 int8 `msg:"aint8,allownil"`
AInt16 int16 `msg:"aint16,allownil"`
AInt32 int32 `msg:"aint32,allownil"`
AInt64 int64 `msg:"aint64,allownil"`
AUint uint `msg:"auint,allownil"`
AUint8 uint8 `msg:"auint8,allownil"`
AUint16 uint16 `msg:"auint16,allownil"`
AUint32 uint32 `msg:"auint32,allownil"`
AUint64 uint64 `msg:"auint64,allownil"`
AFloat32 float32 `msg:"afloat32,allownil"`
AFloat64 float64 `msg:"afloat64,allownil"`
AComplex64 complex64 `msg:"acomplex64,allownil"`
AComplex128 complex128 `msg:"acomplex128,allownil"`
ANamedBool bool `msg:"anamedbool,allownil"`
ANamedInt int `msg:"anamedint,allownil"`
ANamedFloat64 float64 `msg:"anamedfloat64,allownil"`
AMapStrStr map[string]string `msg:"amapstrstr,allownil"`
APtrNamedStr *NamedString `msg:"aptrnamedstr,allownil"`
AString string `msg:"astring,allownil"`
ANamedString string `msg:"anamedstring,allownil"`
AByteSlice []byte `msg:"abyteslice,allownil"`
ASliceString []string `msg:"aslicestring,allownil"`
ASliceNamedString []NamedString `msg:"aslicenamedstring,allownil"`
ANamedStruct NamedStructAN `msg:"anamedstruct,allownil"`
APtrNamedStruct *NamedStructAN `msg:"aptrnamedstruct,allownil"`
AUnnamedStruct struct {
A string `msg:"a,allownil"`
} `msg:"aunnamedstruct,allownil"` // allownil not supported on unnamed struct
EmbeddableStructAN `msg:",flatten,allownil"` // embed flat
EmbeddableStruct2AN `msg:"embeddablestruct2,allownil"` // embed non-flat
AArrayInt [5]int `msg:"aarrayint,allownil"` // not supported
ATime time.Time `msg:"atime,allownil"`
}
type AllowNil1 ¶ added in v1.1.7
type AllowNil1 struct {
ABool []bool `msg:"abool,allownil"`
AInt []int `msg:"aint,allownil"`
AInt8 []int8 `msg:"aint8,allownil"`
AInt16 []int16 `msg:"aint16,allownil"`
AInt32 []int32 `msg:"aint32,allownil"`
AInt64 []int64 `msg:"aint64,allownil"`
AUint []uint `msg:"auint,allownil"`
AUint8 []uint8 `msg:"auint8,allownil"`
AUint16 []uint16 `msg:"auint16,allownil"`
AUint32 []uint32 `msg:"auint32,allownil"`
AUint64 []uint64 `msg:"auint64,allownil"`
AFloat32 []float32 `msg:"afloat32,allownil"`
AFloat64 []float64 `msg:"afloat64,allownil"`
AComplex64 []complex64 `msg:"acomplex64,allownil"`
AComplex128 []complex128 `msg:"acomplex128,allownil"`
ANamedBool []bool `msg:"anamedbool,allownil"`
ANamedInt []int `msg:"anamedint,allownil"`
ANamedFloat64 []float64 `msg:"anamedfloat64,allownil"`
AMapStrStr map[string]string `msg:"amapstrstr,allownil"`
APtrNamedStr *NamedString `msg:"aptrnamedstr,allownil"`
AString []string `msg:"astring,allownil"`
ANamedString []string `msg:"anamedstring,allownil"`
AByteSlice []byte `msg:"abyteslice,allownil"`
ASliceString []string `msg:"aslicestring,allownil"`
ASliceNamedString []NamedString `msg:"aslicenamedstring,allownil"`
ANamedStruct NamedStructAN `msg:"anamedstruct,allownil"`
APtrNamedStruct *NamedStructAN `msg:"aptrnamedstruct,allownil"`
AUnnamedStruct struct {
A []string `msg:"a,allownil"`
} `msg:"aunnamedstruct,allownil"`
*EmbeddableStructAN `msg:",flatten,allownil"` // embed flat
*EmbeddableStruct2AN `msg:"embeddablestruct2,allownil"` // embed non-flat
AArrayInt [5]int `msg:"aarrayint,allownil"` // not supported
ATime *time.Time `msg:"atime,allownil"`
}
type AllowNil10 ¶ added in v1.1.7
type AllowNil10 struct {
Field00 []string `msg:"field00,allownil"`
Field01 []string `msg:"field01,allownil"`
Field02 []string `msg:"field02,allownil"`
Field03 []string `msg:"field03,allownil"`
Field04 []string `msg:"field04,allownil"`
Field05 []string `msg:"field05,allownil"`
Field06 []string `msg:"field06,allownil"`
Field07 []string `msg:"field07,allownil"`
Field08 []string `msg:"field08,allownil"`
Field09 []string `msg:"field09,allownil"`
}
type AllowNilHalfFull ¶ added in v1.1.7
type AllowNilLotsOFields ¶ added in v1.1.7
type AllowNilLotsOFields struct {
Field00 []string `msg:"field00,allownil"`
Field01 []string `msg:"field01,allownil"`
Field02 []string `msg:"field02,allownil"`
Field03 []string `msg:"field03,allownil"`
Field04 []string `msg:"field04,allownil"`
Field05 []string `msg:"field05,allownil"`
Field06 []string `msg:"field06,allownil"`
Field07 []string `msg:"field07,allownil"`
Field08 []string `msg:"field08,allownil"`
Field09 []string `msg:"field09,allownil"`
Field10 []string `msg:"field10,allownil"`
Field11 []string `msg:"field11,allownil"`
Field12 []string `msg:"field12,allownil"`
Field13 []string `msg:"field13,allownil"`
Field14 []string `msg:"field14,allownil"`
Field15 []string `msg:"field15,allownil"`
Field16 []string `msg:"field16,allownil"`
Field17 []string `msg:"field17,allownil"`
Field18 []string `msg:"field18,allownil"`
Field19 []string `msg:"field19,allownil"`
Field20 []string `msg:"field20,allownil"`
Field21 []string `msg:"field21,allownil"`
Field22 []string `msg:"field22,allownil"`
Field23 []string `msg:"field23,allownil"`
Field24 []string `msg:"field24,allownil"`
Field25 []string `msg:"field25,allownil"`
Field26 []string `msg:"field26,allownil"`
Field27 []string `msg:"field27,allownil"`
Field28 []string `msg:"field28,allownil"`
Field29 []string `msg:"field29,allownil"`
Field30 []string `msg:"field30,allownil"`
Field31 []string `msg:"field31,allownil"`
Field32 []string `msg:"field32,allownil"`
Field33 []string `msg:"field33,allownil"`
Field34 []string `msg:"field34,allownil"`
Field35 []string `msg:"field35,allownil"`
Field36 []string `msg:"field36,allownil"`
Field37 []string `msg:"field37,allownil"`
Field38 []string `msg:"field38,allownil"`
Field39 []string `msg:"field39,allownil"`
Field40 []string `msg:"field40,allownil"`
Field41 []string `msg:"field41,allownil"`
Field42 []string `msg:"field42,allownil"`
Field43 []string `msg:"field43,allownil"`
Field44 []string `msg:"field44,allownil"`
Field45 []string `msg:"field45,allownil"`
Field46 []string `msg:"field46,allownil"`
Field47 []string `msg:"field47,allownil"`
Field48 []string `msg:"field48,allownil"`
Field49 []string `msg:"field49,allownil"`
Field50 []string `msg:"field50,allownil"`
Field51 []string `msg:"field51,allownil"`
Field52 []string `msg:"field52,allownil"`
Field53 []string `msg:"field53,allownil"`
Field54 []string `msg:"field54,allownil"`
Field55 []string `msg:"field55,allownil"`
Field56 []string `msg:"field56,allownil"`
Field57 []string `msg:"field57,allownil"`
Field58 []string `msg:"field58,allownil"`
Field59 []string `msg:"field59,allownil"`
Field60 []string `msg:"field60,allownil"`
Field61 []string `msg:"field61,allownil"`
Field62 []string `msg:"field62,allownil"`
Field63 []string `msg:"field63,allownil"`
Field64 []string `msg:"field64,allownil"`
Field65 []string `msg:"field65,allownil"`
Field66 []string `msg:"field66,allownil"`
Field67 []string `msg:"field67,allownil"`
Field68 []string `msg:"field68,allownil"`
Field69 []string `msg:"field69,allownil"`
}
type AllowNilOmitEmpty ¶ added in v1.1.7
type AllowNilOmitEmpty2 ¶ added in v1.1.7
type ArrayConstants ¶ added in v1.1.0
type ArrayConstants struct {
ConstantInt [ConstantInt]string
ConstantInt8 [ConstantInt8]string
ConstantInt16 [ConstantInt16]string
ConstantInt32 [ConstantInt32]string
ConstantInt64 [ConstantInt64]string
ConstantUint [ConstantUint]string
ConstantUint8 [ConstantUint8]string
ConstantUint16 [ConstantUint16]string
ConstantUint32 [ConstantUint32]string
ConstantUint64 [ConstantUint64]string
ConstantHex [0x16]string
ConstantOctal [0o7]string
}
type ArrayMapKey ¶ added in v1.4.0
type ArrayMapKey [4]byte
type ClearOmitted0 ¶ added in v1.2.3
type ClearOmitted0 struct {
AStruct ClearOmittedA `msg:"astruct,omitempty"` // leave this one omitempty
BStruct ClearOmittedA `msg:"bstruct,omitzero"` // and compare to this
AStructPtr *ClearOmittedA `msg:"astructptr,omitempty"` // a pointer case omitempty
BStructPtr *ClearOmittedA `msg:"bstructptr,omitzero"` // a pointer case omitzero
AExt OmitZeroExt `msg:"aext,omitzero"` // external type case
// more
APtrNamedStr *NamedStringCO `msg:"aptrnamedstr,omitzero"`
ANamedStruct NamedStructCO `msg:"anamedstruct,omitzero"`
APtrNamedStruct *NamedStructCO `msg:"aptrnamedstruct,omitzero"`
EmbeddableStructCO `msg:",flatten,omitzero"` // embed flat
EmbeddableStructCO2 `msg:"embeddablestruct2,omitzero"` // embed non-flat
ATime time.Time `msg:"atime,omitzero"`
ASlice []int `msg:"aslice,omitempty"`
AMap map[string]int `msg:"amap,omitempty"`
ABin []byte `msg:"abin,omitempty"`
AInt int `msg:"aint,omitempty"`
AString string `msg:"atring,omitempty"`
Adur time.Duration `msg:"adur,omitempty"`
AJSON json.Number `msg:"ajson,omitempty"`
AnAny any `msg:"anany,omitempty"`
ClearOmittedTuple ClearOmittedTuple `msg:"ozt"` // the inside of a tuple should ignore both omitempty and omitzero
}
type ClearOmitted1 ¶ added in v1.2.3
type ClearOmitted1 struct {
T1 ClearOmittedTuple `msg:"t1"`
}
type ClearOmittedA ¶ added in v1.2.3
type ClearOmittedA struct {
A string `msg:"a,omitempty"`
B NamedStringCO `msg:"b,omitzero"`
C NamedStringCO `msg:"c,omitzero"`
}
func (*ClearOmittedA) IsZero ¶ added in v1.2.3
func (o *ClearOmittedA) IsZero() bool
type ClearOmittedTuple ¶ added in v1.2.3
type ClearOmittedTuple struct {
FieldA string `msg:"fielda,omitempty"`
FieldB NamedStringCO `msg:"fieldb,omitzero"`
FieldC NamedStringCO `msg:"fieldc,omitzero"`
}
ClearOmittedTuple is flagged for tuple output, it should ignore all omitempty and omitzero functionality since it's fundamentally incompatible.
type CompatibleArray8 ¶ added in v1.2.0
type CompatibleArray8 [8]byte
type CompatibleFloat32 ¶ added in v1.2.0
type CompatibleFloat32 float32
type CompatibleFloat64 ¶ added in v1.2.0
type CompatibleFloat64 float64
type CompatibleInt ¶ added in v1.2.0
type CompatibleInt int
type CompatibleMapString ¶ added in v1.2.0
type CompatibleSliceInt ¶ added in v1.2.0
type CompatibleSliceInt []Int
type CompatibleStructA ¶ added in v1.2.0
type CompatibleStructB ¶ added in v1.2.0
type CompatibleStructC ¶ added in v1.2.0
type CompatibleStructD ¶ added in v1.2.0
type CompatibleStructI ¶ added in v1.2.0
type CompatibleStructS ¶ added in v1.2.0
type CompatibleStructS struct {
Slice SliceInt
}
type ConvertErr ¶ added in v1.1.0
type ConvertErr struct {
Err ConvertErrVal
}
type ConvertErrVal ¶ added in v1.1.0
type ConvertErrVal string
type ConvertIntf ¶ added in v1.1.0
type ConvertIntf struct {
Intf ConvertIntfVal
}
type ConvertIntfVal ¶ added in v1.1.0
type ConvertIntfVal struct {
Test string
}
type ConvertString ¶ added in v1.1.0
type ConvertString struct {
String ConvertStringVal
}
type ConvertStringMapValue ¶ added in v1.1.0
type ConvertStringMapValue struct {
Strings map[string]ConvertStringVal
}
type ConvertStringSlice ¶ added in v1.1.0
type ConvertStringSlice struct {
Strings []ConvertStringVal
}
type ConvertStringVal ¶ added in v1.1.0
type ConvertStringVal string
type Custom ¶
type Custom struct {
Bts CustomBytes `msg:"bts"`
Mp map[string]*Embedded `msg:"mp"`
Enums []MyEnum `msg:"enums"` // test explicit enum shim
Some FileHandle `msg:"file_handle"`
}
type CustomBytes ¶
type CustomBytes []byte
type EmbeddableStruct ¶ added in v1.1.1
type EmbeddableStruct struct {
SomeEmbed string `msg:"someembed,omitempty"`
}
type EmbeddableStruct2 ¶ added in v1.1.1
type EmbeddableStruct2 struct {
SomeEmbed2 string `msg:"someembed2,omitempty"`
}
type EmbeddableStruct2AN ¶ added in v1.1.7
type EmbeddableStruct2AN struct {
SomeEmbed2 []string `msg:"someembed2,allownil"`
}
type EmbeddableStruct2Pointer ¶ added in v1.2.1
type EmbeddableStruct2Pointer struct {
SomeEmbed2 string `msg:"someembed2"`
}
type EmbeddableStructAN ¶ added in v1.1.7
type EmbeddableStructAN struct {
SomeEmbed []string `msg:"someembed,allownil"`
}
type EmbeddableStructCO ¶ added in v1.2.3
type EmbeddableStructCO struct {
SomeEmbed string `msg:"someembed2,omitempty"`
}
func (EmbeddableStructCO) IsZero ¶ added in v1.2.3
func (es EmbeddableStructCO) IsZero() bool
type EmbeddableStructCO2 ¶ added in v1.2.3
type EmbeddableStructCO2 struct {
SomeEmbed2 string `msg:"someembed2,omitempty"`
}
func (EmbeddableStructCO2) IsZero ¶ added in v1.2.3
func (es EmbeddableStructCO2) IsZero() bool
type EmbeddableStructOZ ¶ added in v1.2.0
type EmbeddableStructOZ struct {
SomeEmbed string `msg:"someembed2,omitempty"`
}
func (EmbeddableStructOZ) IsZero ¶ added in v1.2.0
func (es EmbeddableStructOZ) IsZero() bool
type EmbeddableStructOZ2 ¶ added in v1.2.0
type EmbeddableStructOZ2 struct {
SomeEmbed2 string `msg:"someembed2,omitempty"`
}
func (EmbeddableStructOZ2) IsZero ¶ added in v1.2.0
func (es EmbeddableStructOZ2) IsZero() bool
type EmbeddableStructPointer ¶ added in v1.2.1
type EmbeddableStructPointer struct {
SomeEmbed string `msg:"someembed"`
}
type EmptyStruct ¶ added in v1.2.0
type EmptyStruct struct{}
type ErrorCtxAsMap ¶ added in v1.1.0
type ErrorCtxAsMap struct {
Val string
Child *ErrorCtxMapChild
Children []*ErrorCtxMapChild
ComplexChild *ErrorCtxMapChildNotInline
Map map[string]string
Nest struct {
Val string
Child *ErrorCtxMapChild
Children []*ErrorCtxMapChild
Map map[string]string
Nest struct {
Val string
Child *ErrorCtxMapChild
Children []*ErrorCtxMapChild
Map map[string]string
}
}
}
type ErrorCtxAsTuple ¶ added in v1.1.0
type ErrorCtxAsTuple struct {
Val string
Child *ErrorCtxTupleChild
Children []*ErrorCtxTupleChild
ComplexChild *ErrorCtxTupleChildNotInline
Map map[string]string
Nest struct {
Val string
Child *ErrorCtxTupleChild
Children []*ErrorCtxTupleChild
Map map[string]string
Nest struct {
Val string
Child *ErrorCtxTupleChild
Children []*ErrorCtxTupleChild
Map map[string]string
}
}
}
type ErrorCtxMapChild ¶ added in v1.1.0
type ErrorCtxMapChild struct {
Val string
}
type ErrorCtxMapChildNotInline ¶ added in v1.1.0
type ErrorCtxMapChildNotInline struct {
Val1, Val2, Val3, Val4, Val5 string
}
type ErrorCtxTupleChild ¶ added in v1.1.0
type ErrorCtxTupleChild struct {
Val string
}
type ErrorCtxTupleChildNotInline ¶ added in v1.1.0
type ErrorCtxTupleChildNotInline struct {
Val1, Val2, Val3, Val4, Val5 string
}
type ExternalArr ¶ added in v1.4.0
type ExternalArr [4]byte
type ExternalInt ¶ added in v1.4.0
type ExternalInt int
type ExternalString ¶ added in v1.4.0
type ExternalString string
type FileHandle ¶
type Flob ¶ added in v1.2.5
type Flob struct {
X Numberwang `msg:"x"`
Y int8 `msg:"y"`
Z int8 `msg:"z"`
W int32 `msg:"w"`
}
type GetUserRequest ¶ added in v1.1.1
type GetUserRequestWithEmbeddedStruct ¶ added in v1.1.1
type Issue102MapUsesTuple ¶ added in v1.1.0
type Issue102MapUsesTuple struct {
Nested Issue102Tuple
NestedPtr *Issue102Tuple
}
type Issue102Tuple ¶ added in v1.1.0
type Issue102Tuple struct{}
type Issue102TupleDeep ¶ added in v1.1.0
type Issue102TupleUsesMap ¶ added in v1.1.0
type Issue102TupleUsesTuple ¶ added in v1.1.0
type Issue102TupleUsesTuple struct {
Nested Issue102Tuple
NestedPtr *Issue102Tuple
}
type Issue102Uses ¶ added in v1.1.0
type Issue102deep ¶ added in v1.1.0
type MyMapKeyStruct ¶ added in v1.4.0
type MyMapKeyStruct struct {
Map map[mapKey]int `msg:",allownil"` // Keys are converted to strings via shim
MapS map[mapKeyString]int `msg:",allownil"` // Keys are strings, with conversion
MapX map[ExternalString]int `msg:",allownil"` // Keys is an external type to the file, replaced with a cast
MapB map[mapKeyBytes]int `msg:",allownil"` // Keys are bytes, converted to hex strings via shim
MapUint map[uint64]int `msg:",allownil"` // Will be ignored (as current behavior)
Original map[string]int `msg:",allownil"` // Original map, for comparison purposes
// Should all be ignored:
MapFloat32 map[float32]int `msg:",allownil"`
MapFloat64 map[float64]int `msg:",allownil"`
MapComplex64 map[complex64]int `msg:",allownil"`
MapComplex128 map[complex128]int `msg:",allownil"`
MapUint2 map[uint]int `msg:",allownil"`
MapUint8 map[uint8]int `msg:",allownil"`
MapUint16 map[uint16]int `msg:",allownil"`
MapUint32 map[uint32]int `msg:",allownil"`
MapUint64 map[uint64]int `msg:",allownil"`
MapByte map[byte]int `msg:",allownil"`
MapInt map[int]int `msg:",allownil"`
MapInt8 map[int8]int `msg:",allownil"`
MapInt16 map[int16]int `msg:",allownil"`
MapInt32 map[int32]int `msg:",allownil"`
MapInt64 map[int64]int `msg:",allownil"`
MapBool map[bool]int `msg:",allownil"`
}
type MyMapKeyStruct2 ¶ added in v1.4.0
type MyMapKeyStruct2 struct {
MapString map[string]int `msg:",allownil"`
MapString2 map[MyStringType]int `msg:",allownil"`
MapString3 map[ExternalString]int `msg:",allownil"`
MapString4 map[mapKeyBytes2]int `msg:",allownil"`
MapFloat32 map[float32]int `msg:",allownil"`
MapFloat64 map[float64]int `msg:",allownil"`
MapComplex64 map[complex64]int `msg:",allownil"`
MapComplex128 map[complex128]int `msg:",allownil"`
MapUint map[uint]int `msg:",allownil"`
MapUint8 map[uint8]int `msg:",allownil"`
MapUint16 map[uint16]int `msg:",allownil"`
MapUint32 map[uint32]int `msg:",allownil"`
MapUint64 map[uint64]int `msg:",allownil"`
MapByte map[byte]int `msg:",allownil"`
MapInt map[int]int `msg:",allownil"`
MapInt8 map[int8]int `msg:",allownil"`
MapInt16 map[int16]int `msg:",allownil"`
MapInt32 map[int32]int `msg:",allownil"`
MapInt64 map[int64]int `msg:",allownil"`
MapBool map[bool]int `msg:",allownil"`
MapMapInt map[int]map[int]int `msg:",allownil"`
// Maps with array keys
MapArray map[[4]byte]int `msg:",allownil"`
MapArray2 map[ArrayMapKey]int `msg:",allownil"`
MapArray3 map[ExternalArr]int `msg:",allownil"`
MapArray4 map[[4]uint32]int `msg:",allownil"`
// Maps with shimmed types
MapDuration map[mapKeyShimmed]int `msg:",allownil"`
}
type MyMapKeyStruct3 ¶ added in v1.4.0
type MyMapKeyStruct3 struct {
MapString map[string]int `msg:",allownil"`
MapString3 map[ExternalString]int `msg:",allownil"`
MapString2 map[ExternalInt]int `msg:",allownil"`
MapFloat32 map[float32]int `msg:",allownil"`
MapFloat64 map[float64]int `msg:",allownil"`
MapUint map[uint]int `msg:",allownil"`
MapUint8 map[uint8]int `msg:",allownil"`
MapUint16 map[uint16]int `msg:",allownil"`
MapUint32 map[uint32]int `msg:",allownil"`
MapUint64 map[uint64]int `msg:",allownil"`
MapByte map[byte]int `msg:",allownil"`
MapInt map[int]int `msg:",allownil"`
MapInt8 map[int8]int `msg:",allownil"`
MapInt16 map[int16]int `msg:",allownil"`
MapInt32 map[int32]int `msg:",allownil"`
MapInt64 map[int64]int `msg:",allownil"`
MapBool map[bool]int `msg:",allownil"`
MapMapInt map[int]map[int]int `msg:",allownil"`
// Maps with unsupported base types.
MapArray map[[4]byte]int `msg:",allownil"` // Ignored
MapArray4 map[[4]uint32]int `msg:",allownil"` // Ignored
MapComplex64 map[complex64]int `msg:",allownil"` // Ignored
MapComplex128 map[complex128]int `msg:",allownil"` // Ignored
}
type MyStringType ¶ added in v1.4.0
type MyStringType string
type NamedBoolPointer ¶ added in v1.2.1
type NamedBoolPointer bool
type NamedFloat64 ¶ added in v1.1.1
type NamedFloat64 float64
type NamedFloat64Pointer ¶ added in v1.2.1
type NamedFloat64Pointer float64
type NamedIntPointer ¶ added in v1.2.1
type NamedIntPointer int
type NamedMapStringPointer ¶ added in v1.2.1
type NamedMapStringPointer map[string]NamedStringPointer
type NamedMapStringPointer2 ¶ added in v1.2.1
type NamedMapStringPointer2 map[string]*NamedStringPointer
type NamedMapStructPointer ¶ added in v1.2.1
type NamedMapStructPointer2 ¶ added in v1.2.1
type NamedString ¶ added in v1.1.1
type NamedString string
type NamedStringCO ¶ added in v1.2.3
type NamedStringCO string
func (*NamedStringCO) IsZero ¶ added in v1.2.3
func (ns *NamedStringCO) IsZero() bool
type NamedStringOZ ¶ added in v1.2.0
type NamedStringOZ string
func (*NamedStringOZ) IsZero ¶ added in v1.2.0
func (ns *NamedStringOZ) IsZero() bool
type NamedStringPointer ¶ added in v1.2.1
type NamedStringPointer string
type NamedStruct ¶ added in v1.1.1
type NamedStructAN ¶ added in v1.1.7
type NamedStructCO ¶ added in v1.2.3
func (*NamedStructCO) IsZero ¶ added in v1.2.3
func (ns *NamedStructCO) IsZero() bool
type NamedStructOZ ¶ added in v1.2.0
func (*NamedStructOZ) IsZero ¶ added in v1.2.0
func (ns *NamedStructOZ) IsZero() bool
type NamedStructPointer ¶ added in v1.2.1
type NoAllowNil ¶ added in v1.2.3
type NoAllowNil []byte
Primitive types cannot have allownil for now.
type NonMsgStructTags ¶ added in v1.1.0
type NonMsgStructTags struct {
A []string `json:"fooJSON" msg:"fooMsgp"`
B string `json:"barJSON"`
C []string `json:"bazJSON" msg:"-"`
Nested []struct {
A []string `json:"a"`
B string `json:"b"`
C []string `json:"c"`
VeryNested []struct {
A []string `json:"a"`
B []string `msg:"bbbb" xml:"-"`
C map[string]struct{} `msg:"cccc"`
}
}
}
type NotAllowNil10 ¶ added in v1.1.7
type NotAllowNil10 struct {
Field00 []string `msg:"field00"`
Field01 []string `msg:"field01"`
Field02 []string `msg:"field02"`
Field03 []string `msg:"field03"`
Field04 []string `msg:"field04"`
Field05 []string `msg:"field05"`
Field06 []string `msg:"field06"`
Field07 []string `msg:"field07"`
Field08 []string `msg:"field08"`
Field09 []string `msg:"field09"`
}
type NotOmitEmpty10 ¶ added in v1.1.1
type NotOmitEmpty10 struct {
Field00 string `msg:"field00"`
Field01 string `msg:"field01"`
Field02 string `msg:"field02"`
Field03 string `msg:"field03"`
Field04 string `msg:"field04"`
Field05 string `msg:"field05"`
Field06 string `msg:"field06"`
Field07 string `msg:"field07"`
Field08 string `msg:"field08"`
Field09 string `msg:"field09"`
}
type NumberJSONSample ¶ added in v1.2.2
type NumberJSONSampleReplace ¶ added in v1.2.2
type Numberwang ¶ added in v1.2.5
type Numberwang int8
type Object ¶
type Object struct {
ObjectNo string `msg:"objno"`
Slice1 []string `msg:"slice1"`
Slice2 []string `msg:"slice2"`
MapMap map[string]map[string]string
MapStringEmpty map[string]struct{}
MapStringEmpty2 map[string]EmptyStruct
ZCBytes []byte `msg:",zerocopy"`
ZCBytesAN []byte `msg:",zerocopy,allownil"`
ZCBytesOE []byte `msg:",zerocopy,omitempty"`
ZCBytesSlice [][]byte `msg:",zerocopy"`
ZCBytesArr [2][]byte `msg:",zerocopy"`
ZCBytesMap map[string][]byte `msg:",zerocopy"`
ZCBytesMapDeep map[string]map[string][]byte `msg:",zerocopy"`
CustomBytes CustomBytes `msg:",zerocopy"`
}
type OmitEmpty0 ¶ added in v1.1.1
type OmitEmpty0 struct {
ABool bool `msg:"abool,omitempty"`
AInt int `msg:"aint,omitempty"`
AInt8 int8 `msg:"aint8,omitempty"`
AInt16 int16 `msg:"aint16,omitempty"`
AInt32 int32 `msg:"aint32,omitempty"`
AInt64 int64 `msg:"aint64,omitempty"`
AUint uint `msg:"auint,omitempty"`
AUint8 uint8 `msg:"auint8,omitempty"`
AUint16 uint16 `msg:"auint16,omitempty"`
AUint32 uint32 `msg:"auint32,omitempty"`
AUint64 uint64 `msg:"auint64,omitempty"`
AFloat32 float32 `msg:"afloat32,omitempty"`
AFloat64 float64 `msg:"afloat64,omitempty"`
AComplex64 complex64 `msg:"acomplex64,omitempty"`
AComplex128 complex128 `msg:"acomplex128,omitempty"`
ANamedBool bool `msg:"anamedbool,omitempty"`
ANamedInt int `msg:"anamedint,omitempty"`
ANamedFloat64 float64 `msg:"anamedfloat64,omitempty"`
AMapStrStr map[string]string `msg:"amapstrstr,omitempty"`
APtrNamedStr *NamedString `msg:"aptrnamedstr,omitempty"`
AString string `msg:"astring,omitempty"`
ANamedString string `msg:"anamedstring,omitempty"`
AByteSlice []byte `msg:"abyteslice,omitempty"`
ASliceByteSlice [][]byte `msg:"aslicebyteslice,omitempty"`
AMapByteSlice map[string][]byte `msg:"amapbyteslice,omitempty"`
ASliceString []string `msg:"aslicestring,omitempty"`
ASliceNamedString []NamedString `msg:"aslicenamedstring,omitempty"`
ANamedStruct NamedStruct `msg:"anamedstruct,omitempty"`
APtrNamedStruct *NamedStruct `msg:"aptrnamedstruct,omitempty"`
AUnnamedStruct struct {
A string `msg:"a,omitempty"`
} `msg:"aunnamedstruct,omitempty"` // omitempty not supported on unnamed struct
EmbeddableStruct `msg:",flatten,omitempty"` // embed flat
EmbeddableStruct2 `msg:"embeddablestruct2,omitempty"` // embed non-flat
AArrayInt [5]int `msg:"aarrayint,omitempty"` // not supported
ATime time.Time `msg:"atime,omitempty"`
}
type OmitEmpty10 ¶ added in v1.1.1
type OmitEmpty10 struct {
Field00 string `msg:"field00,omitempty"`
Field01 string `msg:"field01,omitempty"`
Field02 string `msg:"field02,omitempty"`
Field03 string `msg:"field03,omitempty"`
Field04 string `msg:"field04,omitempty"`
Field05 string `msg:"field05,omitempty"`
Field06 string `msg:"field06,omitempty"`
Field07 string `msg:"field07,omitempty"`
Field08 string `msg:"field08,omitempty"`
Field09 string `msg:"field09,omitempty"`
}
type OmitEmptyHalfFull ¶ added in v1.1.1
type OmitEmptyLotsOFields ¶ added in v1.1.1
type OmitEmptyLotsOFields struct {
Field00 string `msg:"field00,omitempty"`
Field01 string `msg:"field01,omitempty"`
Field02 string `msg:"field02,omitempty"`
Field03 string `msg:"field03,omitempty"`
Field04 string `msg:"field04,omitempty"`
Field05 string `msg:"field05,omitempty"`
Field06 string `msg:"field06,omitempty"`
Field07 string `msg:"field07,omitempty"`
Field08 string `msg:"field08,omitempty"`
Field09 string `msg:"field09,omitempty"`
Field10 string `msg:"field10,omitempty"`
Field11 string `msg:"field11,omitempty"`
Field12 string `msg:"field12,omitempty"`
Field13 string `msg:"field13,omitempty"`
Field14 string `msg:"field14,omitempty"`
Field15 string `msg:"field15,omitempty"`
Field16 string `msg:"field16,omitempty"`
Field17 string `msg:"field17,omitempty"`
Field18 string `msg:"field18,omitempty"`
Field19 string `msg:"field19,omitempty"`
Field20 string `msg:"field20,omitempty"`
Field21 string `msg:"field21,omitempty"`
Field22 string `msg:"field22,omitempty"`
Field23 string `msg:"field23,omitempty"`
Field24 string `msg:"field24,omitempty"`
Field25 string `msg:"field25,omitempty"`
Field26 string `msg:"field26,omitempty"`
Field27 string `msg:"field27,omitempty"`
Field28 string `msg:"field28,omitempty"`
Field29 string `msg:"field29,omitempty"`
Field30 string `msg:"field30,omitempty"`
Field31 string `msg:"field31,omitempty"`
Field32 string `msg:"field32,omitempty"`
Field33 string `msg:"field33,omitempty"`
Field34 string `msg:"field34,omitempty"`
Field35 string `msg:"field35,omitempty"`
Field36 string `msg:"field36,omitempty"`
Field37 string `msg:"field37,omitempty"`
Field38 string `msg:"field38,omitempty"`
Field39 string `msg:"field39,omitempty"`
Field40 string `msg:"field40,omitempty"`
Field41 string `msg:"field41,omitempty"`
Field42 string `msg:"field42,omitempty"`
Field43 string `msg:"field43,omitempty"`
Field44 string `msg:"field44,omitempty"`
Field45 string `msg:"field45,omitempty"`
Field46 string `msg:"field46,omitempty"`
Field47 string `msg:"field47,omitempty"`
Field48 string `msg:"field48,omitempty"`
Field49 string `msg:"field49,omitempty"`
Field50 string `msg:"field50,omitempty"`
Field51 string `msg:"field51,omitempty"`
Field52 string `msg:"field52,omitempty"`
Field53 string `msg:"field53,omitempty"`
Field54 string `msg:"field54,omitempty"`
Field55 string `msg:"field55,omitempty"`
Field56 string `msg:"field56,omitempty"`
Field57 string `msg:"field57,omitempty"`
Field58 string `msg:"field58,omitempty"`
Field59 string `msg:"field59,omitempty"`
Field60 string `msg:"field60,omitempty"`
Field61 string `msg:"field61,omitempty"`
Field62 string `msg:"field62,omitempty"`
Field63 string `msg:"field63,omitempty"`
Field64 string `msg:"field64,omitempty"`
Field65 string `msg:"field65,omitempty"`
Field66 string `msg:"field66,omitempty"`
Field67 string `msg:"field67,omitempty"`
Field68 string `msg:"field68,omitempty"`
Field69 string `msg:"field69,omitempty"`
}
type OmitEmptyNoName ¶ added in v1.2.0
type OmitEmptyNoName struct {
ABool bool `msg:",omitempty"`
AInt int `msg:",omitempty"`
AInt8 int8 `msg:",omitempty"`
AInt16 int16 `msg:",omitempty"`
AInt32 int32 `msg:",omitempty"`
AInt64 int64 `msg:",omitempty"`
AUint uint `msg:",omitempty"`
AUint8 uint8 `msg:",omitempty"`
AUint16 uint16 `msg:",omitempty"`
AUint32 uint32 `msg:",omitempty"`
AUint64 uint64 `msg:",omitempty"`
AFloat32 float32 `msg:",omitempty"`
AFloat64 float64 `msg:",omitempty"`
AComplex64 complex64 `msg:",omitempty"`
AComplex128 complex128 `msg:",omitempty"`
ANamedBool bool `msg:",omitempty"`
ANamedInt int `msg:",omitempty"`
ANamedFloat64 float64 `msg:",omitempty"`
AMapStrStr map[string]string `msg:",omitempty"`
APtrNamedStr *NamedString `msg:",omitempty"`
AString string `msg:",omitempty"`
AByteSlice []byte `msg:",omitempty"`
ASliceString []string `msg:",omitempty"`
ASliceNamedString []NamedString `msg:",omitempty"`
ANamedStruct NamedStruct `msg:",omitempty"`
APtrNamedStruct *NamedStruct `msg:",omitempty"`
AUnnamedStruct struct {
A string `msg:",omitempty"`
} `msg:",omitempty"` // omitempty not supported on unnamed struct
EmbeddableStruct `msg:",flatten,omitempty"` // embed flat
EmbeddableStruct2 `msg:",omitempty"` // embed non-flat
AArrayInt [5]int `msg:",omitempty"` // not supported
ATime time.Time `msg:",omitempty"`
}
type OmitZero0 ¶ added in v1.2.0
type OmitZero0 struct {
AStruct OmitZeroA `msg:"astruct,omitempty"` // leave this one omitempty
BStruct OmitZeroA `msg:"bstruct,omitzero"` // and compare to this
AStructPtr *OmitZeroA `msg:"astructptr,omitempty"` // a pointer case omitempty
BStructPtr *OmitZeroA `msg:"bstructptr,omitzero"` // a pointer case omitzero
AExt OmitZeroExt `msg:"aext,omitzero"` // external type case
AExtPtr *OmitZeroExtPtr `msg:"aextptr,omitzero"` // external type pointer case
// more
APtrNamedStr *NamedStringOZ `msg:"aptrnamedstr,omitzero"`
ANamedStruct NamedStructOZ `msg:"anamedstruct,omitzero"`
APtrNamedStruct *NamedStructOZ `msg:"aptrnamedstruct,omitzero"`
EmbeddableStruct `msg:",flatten,omitzero"` // embed flat
EmbeddableStructOZ `msg:"embeddablestruct2,omitzero"` // embed non-flat
ATime time.Time `msg:"atime,omitzero"`
OmitZeroTuple OmitZeroTuple `msg:"ozt"` // the inside of a tuple should ignore both omitempty and omitzero
}
type OmitZero1 ¶ added in v1.2.0
type OmitZero1 struct {
T1 OmitZeroTuple `msg:"t1"`
}
type OmitZeroA ¶ added in v1.2.0
type OmitZeroA struct {
A string `msg:"a,omitempty"`
B NamedStringOZ `msg:"b,omitzero"`
C NamedStringOZ `msg:"c,omitzero"`
}
type OmitZeroExt ¶ added in v1.2.0
type OmitZeroExt struct {
// contains filtered or unexported fields
}
func (*OmitZeroExt) DecodeMsg ¶ added in v1.2.0
func (o *OmitZeroExt) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (OmitZeroExt) EncodeMsg ¶ added in v1.2.0
func (o OmitZeroExt) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (OmitZeroExt) IsZero ¶ added in v1.2.0
func (o OmitZeroExt) IsZero() bool
IsZero will return true if a is not positive
func (OmitZeroExt) MarshalMsg ¶ added in v1.2.0
func (o OmitZeroExt) MarshalMsg(b []byte) (ret []byte, err error)
MarshalMsg implements msgp.Marshaler
func (OmitZeroExt) Msgsize ¶ added in v1.2.0
func (o OmitZeroExt) Msgsize() (s int)
Msgsize implements msgp.Msgsizer
func (*OmitZeroExt) UnmarshalMsg ¶ added in v1.2.0
func (o *OmitZeroExt) UnmarshalMsg(bts []byte) (ret []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type OmitZeroExtPtr ¶ added in v1.2.0
type OmitZeroExtPtr struct {
// contains filtered or unexported fields
}
func (*OmitZeroExtPtr) DecodeMsg ¶ added in v1.2.0
func (o *OmitZeroExtPtr) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (*OmitZeroExtPtr) EncodeMsg ¶ added in v1.2.0
func (o *OmitZeroExtPtr) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (*OmitZeroExtPtr) IsZero ¶ added in v1.2.0
func (o *OmitZeroExtPtr) IsZero() bool
IsZero will return true if a is nil or not positive
func (*OmitZeroExtPtr) MarshalMsg ¶ added in v1.2.0
func (o *OmitZeroExtPtr) MarshalMsg(b []byte) (ret []byte, err error)
MarshalMsg implements msgp.Marshaler
func (*OmitZeroExtPtr) Msgsize ¶ added in v1.2.0
func (o *OmitZeroExtPtr) Msgsize() (s int)
Msgsize implements msgp.Msgsizer
func (*OmitZeroExtPtr) UnmarshalMsg ¶ added in v1.2.0
func (o *OmitZeroExtPtr) UnmarshalMsg(bts []byte) (ret []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type OmitZeroTuple ¶ added in v1.2.0
type OmitZeroTuple struct {
FieldA string `msg:"fielda,omitempty"`
FieldB NamedStringOZ `msg:"fieldb,omitzero"`
FieldC NamedStringOZ `msg:"fieldc,omitzero"`
}
OmitZeroTuple is flagged for tuple output, it should ignore all omitempty and omitzero functionality since it's fundamentally incompatible.
type Pointer0 ¶ added in v1.2.1
type Pointer0 struct {
ABool bool `msg:"abool"`
AInt int `msg:"aint"`
AInt8 int8 `msg:"aint8"`
AInt16 int16 `msg:"aint16"`
AInt32 int32 `msg:"aint32"`
AInt64 int64 `msg:"aint64"`
AUint uint `msg:"auint"`
AUint8 uint8 `msg:"auint8"`
AUint16 uint16 `msg:"auint16"`
AUint32 uint32 `msg:"auint32"`
AUint64 uint64 `msg:"auint64"`
AFloat32 float32 `msg:"afloat32"`
AFloat64 float64 `msg:"afloat64"`
AComplex64 complex64 `msg:"acomplex64"`
AComplex128 complex128 `msg:"acomplex128"`
ANamedBool bool `msg:"anamedbool"`
ANamedInt int `msg:"anamedint"`
ANamedFloat64 float64 `msg:"anamedfloat64"`
AMapStrStr map[string]string `msg:"amapstrstr"`
APtrNamedStr *NamedString `msg:"aptrnamedstr"`
AString string `msg:"astring"`
ANamedString string `msg:"anamedstring"`
AByteSlice []byte `msg:"abyteslice"`
ASliceString []string `msg:"aslicestring"`
ASliceNamedString []NamedString `msg:"aslicenamedstring"`
ANamedStruct NamedStruct `msg:"anamedstruct"`
APtrNamedStruct *NamedStruct `msg:"aptrnamedstruct"`
AUnnamedStruct struct {
A string `msg:"a"`
} `msg:"aunnamedstruct"` // omitempty not supported on unnamed struct
EmbeddableStruct `msg:",flatten"` // embed flat
EmbeddableStruct2 `msg:"embeddablestruct2"` // embed non-flat
AArrayInt [5]int `msg:"aarrayint"` // not supported
ATime time.Time `msg:"atime"`
}
type PointerHalfFull ¶ added in v1.2.1
type PointerNoName ¶ added in v1.2.1
type PointerNoName struct {
ABool bool `msg:""`
AInt int `msg:""`
AInt8 int8 `msg:""`
AInt16 int16 `msg:""`
AInt32 int32 `msg:""`
AInt64 int64 `msg:""`
AUint uint `msg:""`
AUint8 uint8 `msg:""`
AUint16 uint16 `msg:""`
AUint32 uint32 `msg:""`
AUint64 uint64 `msg:""`
AFloat32 float32 `msg:""`
AFloat64 float64 `msg:""`
AComplex64 complex64 `msg:""`
AComplex128 complex128 `msg:""`
ANamedBool bool `msg:""`
ANamedInt int `msg:""`
ANamedFloat64 float64 `msg:""`
AMapStrF map[string]NamedFloat64Pointer `msg:""`
AMapStrStruct map[string]PointerHalfFull `msg:""`
AMapStrStruct2 map[string]*PointerHalfFull `msg:""`
APtrNamedStr *NamedStringPointer `msg:""`
AString string `msg:""`
AByteSlice []byte `msg:""`
ASliceString []string `msg:""`
ASliceNamedString []NamedStringPointer `msg:""`
ANamedStruct NamedStructPointer `msg:""`
APtrNamedStruct *NamedStructPointer `msg:""`
AUnnamedStruct struct {
A string `msg:""`
} `msg:""` // omitempty not supported on unnamed struct
EmbeddableStructPointer `msg:",flatten"` // embed flat
EmbeddableStruct2Pointer `msg:""` // embed non-flat
AArrayInt [5]int `msg:""` // not supported
ATime time.Time `msg:""`
ADur time.Duration `msg:""`
}
type SetOf ¶ added in v1.3.0
type SetOf struct {
String setof.String
StringSorted setof.StringSorted
Int setof.Int
IntSorted setof.IntSorted
Int64 setof.Int64
Int64Sorted setof.Int64Sorted
Int32 setof.Int32
Int32Sorted setof.Int32Sorted
Int16 setof.Int16
Int16Sorted setof.Int16Sorted
Int8 setof.Int8
Int8Sorted setof.Int8Sorted
Byte setof.Byte
ByteSorted setof.ByteSorted
Uint setof.Uint
UintSorted setof.UintSorted
Uint64 setof.Uint64
Uint64Sorted setof.Uint64Sorted
Uint32 setof.Uint32
Uint32Sorted setof.Uint32Sorted
Uint16 setof.Uint16
Uint16Sorted setof.Uint16Sorted
Uint8 setof.Uint8
Uint8Sorted setof.Uint8Sorted
Float32 setof.Float32
Float32Sorted setof.Float32Sorted
Float64 setof.Float64
Float64Sorted setof.Float64Sorted
}
type SetOfTuple ¶ added in v1.3.0
type SetOfTuple struct {
String setof.String
StringSorted setof.StringSorted
Int setof.Int
IntSorted setof.IntSorted
Int64 setof.Int64
Int64Sorted setof.Int64Sorted
Int32 setof.Int32
Int32Sorted setof.Int32Sorted
Int16 setof.Int16
Int16Sorted setof.Int16Sorted
Int8 setof.Int8
Int8Sorted setof.Int8Sorted
Byte setof.Byte
ByteSorted setof.ByteSorted
Uint setof.Uint
UintSorted setof.UintSorted
Uint64 setof.Uint64
Uint64Sorted setof.Uint64Sorted
Uint32 setof.Uint32
Uint32Sorted setof.Uint32Sorted
Uint16 setof.Uint16
Uint16Sorted setof.Uint16Sorted
Uint8 setof.Uint8
Uint8Sorted setof.Uint8Sorted
Float32 setof.Float32
Float32Sorted setof.Float32Sorted
Float64 setof.Float64
Float64Sorted setof.Float64Sorted
}
type SliceString ¶ added in v1.2.0
type SliceString []String
type StructByteSlice ¶ added in v1.2.2
type StructByteSlice struct {
ABytes []byte `msg:",allownil"`
AString []string `msg:",allownil"`
ABool []bool `msg:",allownil"`
AInt []int `msg:",allownil"`
AInt8 []int8 `msg:",allownil"`
AInt16 []int16 `msg:",allownil"`
AInt32 []int32 `msg:",allownil"`
AInt64 []int64 `msg:",allownil"`
AUint []uint `msg:",allownil"`
AUint8 []uint8 `msg:",allownil"`
AUint16 []uint16 `msg:",allownil"`
AUint32 []uint32 `msg:",allownil"`
AUint64 []uint64 `msg:",allownil"`
AFloat32 []float32 `msg:",allownil"`
AFloat64 []float64 `msg:",allownil"`
AComplex64 []complex64 `msg:",allownil"`
AComplex128 []complex128 `msg:",allownil"`
AStruct []Fixed `msg:",allownil"`
}
type TestHidden ¶
type TestType ¶
type TestType struct {
F *float64 `msg:"float"`
Els map[string]string `msg:"elements"`
Obj struct {
ValueA string `msg:"value_a"`
ValueB []byte `msg:"value_b"`
} `msg:"object"`
Child *TestType `msg:"child"`
Time time.Time `msg:"time"`
Any interface{} `msg:"any"`
Appended msgp.Raw `msg:"appended"`
Num msgp.Number `msg:"num"`
Byte byte
Rune rune
RunePtr *rune
RunePtrPtr **rune
RuneSlice []rune
Slice1 []string
Slice2 []string
SlicePtr *[]string
MapStringEmpty map[string]struct{}
MapStringEmpty2 map[string]EmptyStruct
}
type Things ¶
type Things struct {
Cmplx complex64 `msg:"complex"` // test slices
Vals []int32 `msg:"values"`
Arr [msgp.ExtensionPrefixSize]float64 `msg:"arr"` // test const array and *ast.SelectorExpr as array size
Arr2 [4]float64 `msg:"arr2"` // test basic lit array
Ext *msgp.RawExtension `msg:"ext,extension"` // test extension
Oext msgp.RawExtension `msg:"oext,extension"` // test extension reference
}
type TypeSample ¶ added in v1.2.4
type TypeSamples ¶ added in v1.2.4
type TypeSamples []TypeSample
type X ¶
type X struct {
Values [32]byte // should compile to 32*msgp.ByteSize; encoded as Bin
ValuesPtr *[32]byte // check (*)[:] deref
More Block // should be identical to the above
Others [][32]int32 // should compile to len(x.Others)*32*msgp.Int32Size
Matrix [][]int32 // should not optimize
ManyFixed []Fixed
WeirdTag string `msg:"\x0b"`
ZCBytes []byte `msg:",zerocopy"`
ZCBytesAN []byte `msg:",zerocopy,allownil"`
ZCBytesOE []byte `msg:",zerocopy,omitempty"`
ZCBytesSlice [][]byte `msg:",zerocopy"`
ZCBytesArr [2][]byte `msg:",zerocopy"`
ZCBytesMap map[string][]byte `msg:",zerocopy"`
ZCBytesMapDeep map[string]map[string][]byte `msg:",zerocopy"`
CustomBytes CustomBytes `msg:",zerocopy"`
}
tests edge-cases with compiling size compilation.