Documentation
¶
Overview ¶
This file exercises top-level empty-interface type declarations: the generator must skip `type X any` exactly like `type X interface{}` (methods cannot be generated for an interface receiver, and the IDENT/Intf fallbacks emit code that does not compile), while ordinary types declared alongside them still generate.
Package tests exercises the `required` codec struct-tag option, which makes the generated decoder reject any field that holds its zero value after decoding (whether the field was absent from the wire or encoded as zero).
Index ¶
- func AnyDeclNeighborMaxSize() (s int)
- func CompositeRequiredMaxSize() (s int)
- func InnerMaxSize() (s int)
- func MapRequiredMaxSize() (s int)
- func MapRequiredOmitEmptyMaxSize() (s int)
- func TupleRequiredMaxSize() (s int)
- type AnyDeclNeighbor
- func (_ *AnyDeclNeighbor) CanMarshalMsg(z interface{}) bool
- func (_ *AnyDeclNeighbor) CanUnmarshalMsg(z interface{}) bool
- func (z *AnyDeclNeighbor) MarshalMsg(b []byte) (o []byte)
- func (z *AnyDeclNeighbor) MsgIsZero() bool
- func (z *AnyDeclNeighbor) Msgsize() (s int)
- func (z *AnyDeclNeighbor) UnmarshalMsg(bts []byte) (o []byte, err error)
- func (z *AnyDeclNeighbor) UnmarshalMsgWithState(bts []byte, st msgp.UnmarshalState) (o []byte, err error)
- type CompositeRequired
- func (_ *CompositeRequired) CanMarshalMsg(z interface{}) bool
- func (_ *CompositeRequired) CanUnmarshalMsg(z interface{}) bool
- func (z *CompositeRequired) MarshalMsg(b []byte) (o []byte)
- func (z *CompositeRequired) MsgIsZero() bool
- func (z *CompositeRequired) Msgsize() (s int)
- func (z *CompositeRequired) UnmarshalMsg(bts []byte) (o []byte, err error)
- func (z *CompositeRequired) UnmarshalMsgWithState(bts []byte, st msgp.UnmarshalState) (o []byte, err error)
- type HandleAny
- type HandleAnyAlias
- type HandleIface
- type Inner
- func (_ *Inner) CanMarshalMsg(z interface{}) bool
- func (_ *Inner) CanUnmarshalMsg(z interface{}) bool
- func (z *Inner) MarshalMsg(b []byte) (o []byte)
- func (z *Inner) MsgIsZero() bool
- func (z *Inner) Msgsize() (s int)
- func (z *Inner) UnmarshalMsg(bts []byte) (o []byte, err error)
- func (z *Inner) UnmarshalMsgWithState(bts []byte, st msgp.UnmarshalState) (o []byte, err error)
- type MapRequired
- func (_ *MapRequired) CanMarshalMsg(z interface{}) bool
- func (_ *MapRequired) CanUnmarshalMsg(z interface{}) bool
- func (z *MapRequired) MarshalMsg(b []byte) (o []byte)
- func (z *MapRequired) MsgIsZero() bool
- func (z *MapRequired) Msgsize() (s int)
- func (z *MapRequired) UnmarshalMsg(bts []byte) (o []byte, err error)
- func (z *MapRequired) UnmarshalMsgWithState(bts []byte, st msgp.UnmarshalState) (o []byte, err error)
- type MapRequiredOmitEmpty
- func (_ *MapRequiredOmitEmpty) CanMarshalMsg(z interface{}) bool
- func (_ *MapRequiredOmitEmpty) CanUnmarshalMsg(z interface{}) bool
- func (z *MapRequiredOmitEmpty) MarshalMsg(b []byte) (o []byte)
- func (z *MapRequiredOmitEmpty) MsgIsZero() bool
- func (z *MapRequiredOmitEmpty) Msgsize() (s int)
- func (z *MapRequiredOmitEmpty) UnmarshalMsg(bts []byte) (o []byte, err error)
- func (z *MapRequiredOmitEmpty) UnmarshalMsgWithState(bts []byte, st msgp.UnmarshalState) (o []byte, err error)
- type TupleRequired
- func (_ TupleRequired) CanMarshalMsg(z interface{}) bool
- func (_ *TupleRequired) CanUnmarshalMsg(z interface{}) bool
- func (z TupleRequired) MarshalMsg(b []byte) (o []byte)
- func (z TupleRequired) MsgIsZero() bool
- func (z TupleRequired) Msgsize() (s int)
- func (z *TupleRequired) UnmarshalMsg(bts []byte) (o []byte, err error)
- func (z *TupleRequired) UnmarshalMsgWithState(bts []byte, st msgp.UnmarshalState) (o []byte, err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AnyDeclNeighborMaxSize ¶
func AnyDeclNeighborMaxSize() (s int)
AnyDeclNeighborMaxSize returns a maximum valid message size for this message type
func CompositeRequiredMaxSize ¶
func CompositeRequiredMaxSize() (s int)
CompositeRequiredMaxSize returns a maximum valid message size for this message type
func InnerMaxSize ¶
func InnerMaxSize() (s int)
InnerMaxSize returns a maximum valid message size for this message type
func MapRequiredMaxSize ¶
func MapRequiredMaxSize() (s int)
MapRequiredMaxSize returns a maximum valid message size for this message type
func MapRequiredOmitEmptyMaxSize ¶
func MapRequiredOmitEmptyMaxSize() (s int)
MapRequiredOmitEmptyMaxSize returns a maximum valid message size for this message type
func TupleRequiredMaxSize ¶
func TupleRequiredMaxSize() (s int)
TupleRequiredMaxSize returns a maximum valid message size for this message type
Types ¶
type AnyDeclNeighbor ¶
type AnyDeclNeighbor struct {
Name string `codec:"n"`
Count uint64 `codec:"c"`
// contains filtered or unexported fields
}
AnyDeclNeighbor must still get generated code despite the interface declarations surrounding it.
func (*AnyDeclNeighbor) CanMarshalMsg ¶
func (_ *AnyDeclNeighbor) CanMarshalMsg(z interface{}) bool
func (*AnyDeclNeighbor) CanUnmarshalMsg ¶
func (_ *AnyDeclNeighbor) CanUnmarshalMsg(z interface{}) bool
func (*AnyDeclNeighbor) MarshalMsg ¶
func (z *AnyDeclNeighbor) MarshalMsg(b []byte) (o []byte)
MarshalMsg implements msgp.Marshaler
func (*AnyDeclNeighbor) MsgIsZero ¶
func (z *AnyDeclNeighbor) MsgIsZero() bool
MsgIsZero returns whether this is a zero value
func (*AnyDeclNeighbor) Msgsize ¶
func (z *AnyDeclNeighbor) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*AnyDeclNeighbor) UnmarshalMsg ¶
func (z *AnyDeclNeighbor) UnmarshalMsg(bts []byte) (o []byte, err error)
func (*AnyDeclNeighbor) UnmarshalMsgWithState ¶
func (z *AnyDeclNeighbor) UnmarshalMsgWithState(bts []byte, st msgp.UnmarshalState) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type CompositeRequired ¶
type CompositeRequired struct {
Nested Inner `codec:"nested,required"` // zero when Inner is zero (X == "")
// contains filtered or unexported fields
}
CompositeRequired covers required on a non-scalar field, whose zero check is derived from the type rather than a literal: a value struct is zero when all of its fields are zero.
func (*CompositeRequired) CanMarshalMsg ¶
func (_ *CompositeRequired) CanMarshalMsg(z interface{}) bool
func (*CompositeRequired) CanUnmarshalMsg ¶
func (_ *CompositeRequired) CanUnmarshalMsg(z interface{}) bool
func (*CompositeRequired) MarshalMsg ¶
func (z *CompositeRequired) MarshalMsg(b []byte) (o []byte)
MarshalMsg implements msgp.Marshaler
func (*CompositeRequired) MsgIsZero ¶
func (z *CompositeRequired) MsgIsZero() bool
MsgIsZero returns whether this is a zero value
func (*CompositeRequired) Msgsize ¶
func (z *CompositeRequired) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*CompositeRequired) UnmarshalMsg ¶
func (z *CompositeRequired) UnmarshalMsg(bts []byte) (o []byte, err error)
func (*CompositeRequired) UnmarshalMsgWithState ¶
func (z *CompositeRequired) UnmarshalMsgWithState(bts []byte, st msgp.UnmarshalState) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type HandleAny ¶
type HandleAny any
HandleAny is an opaque reference in the style of go-algorand's agreement.MessageHandle and network.Peer; no methods may be generated.
type HandleAnyAlias ¶
type HandleAnyAlias = any
HandleAnyAlias is the alias form of the same declaration.
type HandleIface ¶
type HandleIface interface{}
HandleIface is the pre-Go-1.18 spelling of HandleAny.
type Inner ¶
type Inner struct {
X string `codec:"x,omitempty"`
// contains filtered or unexported fields
}
Inner is a named struct used to exercise required on composite fields.
func (*Inner) CanMarshalMsg ¶
func (*Inner) CanUnmarshalMsg ¶
func (*Inner) MarshalMsg ¶
MarshalMsg implements msgp.Marshaler
func (*Inner) Msgsize ¶
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*Inner) UnmarshalMsgWithState ¶
UnmarshalMsg implements msgp.Unmarshaler
type MapRequired ¶
type MapRequired struct {
// Required, not omitempty: a zero value is written to the wire and must
// still be rejected on decode.
ReqPlain string `codec:"reqplain,required"`
// Required and omitempty: a zero value is dropped by the encoder, leaving
// the field absent on decode, and must still be rejected.
ReqOmit int64 `codec:"reqomit,omitempty,required"`
// Not required: a zero value decodes without error.
Optional string `codec:"opt,omitempty"`
// contains filtered or unexported fields
}
MapRequired covers the required option on a map-encoded struct. Its _struct tag carries no omitempty, so a zero required field is still written to the wire (the "present but zero" rejection path); a field that individually opts into omitempty is instead dropped when zero (the "absent from the wire" path).
func (*MapRequired) CanMarshalMsg ¶
func (_ *MapRequired) CanMarshalMsg(z interface{}) bool
func (*MapRequired) CanUnmarshalMsg ¶
func (_ *MapRequired) CanUnmarshalMsg(z interface{}) bool
func (*MapRequired) MarshalMsg ¶
func (z *MapRequired) MarshalMsg(b []byte) (o []byte)
MarshalMsg implements msgp.Marshaler
func (*MapRequired) MsgIsZero ¶
func (z *MapRequired) MsgIsZero() bool
MsgIsZero returns whether this is a zero value
func (*MapRequired) Msgsize ¶
func (z *MapRequired) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*MapRequired) UnmarshalMsg ¶
func (z *MapRequired) UnmarshalMsg(bts []byte) (o []byte, err error)
func (*MapRequired) UnmarshalMsgWithState ¶
func (z *MapRequired) UnmarshalMsgWithState(bts []byte, st msgp.UnmarshalState) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type MapRequiredOmitEmpty ¶
type MapRequiredOmitEmpty struct {
// Required with struct-level (not field-level) omitempty: a zero value is
// still dropped by the encoder, leaving the field absent on decode.
Req string `codec:"req,required"`
// Not required.
Optional string `codec:"opt"`
// contains filtered or unexported fields
}
MapRequiredOmitEmpty has the same shape as MapRequired but its _struct tag carries omitempty, so struct-level omitempty applies to every field. A zero required field is dropped from the wire entirely (rather than written as zero) and must still be rejected on decode.
func (*MapRequiredOmitEmpty) CanMarshalMsg ¶
func (_ *MapRequiredOmitEmpty) CanMarshalMsg(z interface{}) bool
func (*MapRequiredOmitEmpty) CanUnmarshalMsg ¶
func (_ *MapRequiredOmitEmpty) CanUnmarshalMsg(z interface{}) bool
func (*MapRequiredOmitEmpty) MarshalMsg ¶
func (z *MapRequiredOmitEmpty) MarshalMsg(b []byte) (o []byte)
MarshalMsg implements msgp.Marshaler
func (*MapRequiredOmitEmpty) MsgIsZero ¶
func (z *MapRequiredOmitEmpty) MsgIsZero() bool
MsgIsZero returns whether this is a zero value
func (*MapRequiredOmitEmpty) Msgsize ¶
func (z *MapRequiredOmitEmpty) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*MapRequiredOmitEmpty) UnmarshalMsg ¶
func (z *MapRequiredOmitEmpty) UnmarshalMsg(bts []byte) (o []byte, err error)
func (*MapRequiredOmitEmpty) UnmarshalMsgWithState ¶
func (z *MapRequiredOmitEmpty) UnmarshalMsgWithState(bts []byte, st msgp.UnmarshalState) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type TupleRequired ¶
TupleRequired is an array-encoded struct (see the //msgp:tuple directive) confirming the required check also runs on the tuple decode path.
func (TupleRequired) CanMarshalMsg ¶
func (_ TupleRequired) CanMarshalMsg(z interface{}) bool
func (*TupleRequired) CanUnmarshalMsg ¶
func (_ *TupleRequired) CanUnmarshalMsg(z interface{}) bool
func (TupleRequired) MarshalMsg ¶
func (z TupleRequired) MarshalMsg(b []byte) (o []byte)
MarshalMsg implements msgp.Marshaler
func (TupleRequired) MsgIsZero ¶
func (z TupleRequired) MsgIsZero() bool
MsgIsZero returns whether this is a zero value
func (TupleRequired) Msgsize ¶
func (z TupleRequired) Msgsize() (s int)
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (*TupleRequired) UnmarshalMsg ¶
func (z *TupleRequired) UnmarshalMsg(bts []byte) (o []byte, err error)
func (*TupleRequired) UnmarshalMsgWithState ¶
func (z *TupleRequired) UnmarshalMsgWithState(bts []byte, st msgp.UnmarshalState) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler