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 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 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 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 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 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 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.