Documentation
¶
Index ¶
Constants ¶
View Source
const (
VersionSize = wrappers.ShortLen
)
Variables ¶
View Source
var ( ErrUnsupportedType = errors.New("unsupported type") ErrMaxSliceLenExceeded = errors.New("max slice length exceeded") ErrDoesNotImplementInterface = errors.New("does not implement interface") ErrUnexportedField = errors.New("unexported field") ErrMarshalZeroLength = errors.New("can't marshal zero length value") ErrUnmarshalZeroLength = errors.New("can't unmarshal zero length value") )
View Source
var ( ErrUnknownVersion = errors.New("unknown codec version") ErrMarshalNil = errors.New("can't marshal nil pointer or interface") ErrUnmarshalNil = errors.New("can't unmarshal nil") ErrUnmarshalTooBig = errors.New("byte array exceeds maximum length") ErrCantPackVersion = errors.New("couldn't pack codec version") ErrCantUnpackVersion = errors.New("couldn't unpack codec version") ErrDuplicatedVersion = errors.New("duplicated codec version") ErrExtraSpace = errors.New("trailing buffer space") )
View Source
var ErrDuplicateType = errors.New("duplicate type registration")
Functions ¶
This section is empty.
Types ¶
type Codec ¶
type Codec interface {
MarshalInto(interface{}, *wrappers.Packer) error
UnmarshalFrom(*wrappers.Packer, interface{}) error
// Returns the size, in bytes, of [value] when it's marshaled
Size(value interface{}) (int, error)
}
Codec marshals and unmarshals
type GeneralCodec ¶
GeneralCodec marshals and unmarshals structs including interfaces
type Manager ¶
type Manager interface {
// Associate the given codec with the given version ID
RegisterCodec(version uint16, codec Codec) error
// Size returns the size, in bytes, of [value] when it's marshaled
// using the codec with the given version.
// RegisterCodec must have been called with that version.
// If [value] is nil, returns [ErrMarshalNil]
Size(version uint16, value interface{}) (int, error)
// Marshal the given value using the codec with the given version.
// RegisterCodec must have been called with that version.
Marshal(version uint16, source interface{}) (destination []byte, err error)
// Unmarshal the given bytes into the given destination. [destination] must
// be a pointer or an interface. Returns the version of the codec that
// produces the given bytes.
Unmarshal(source []byte, destination interface{}) (version uint16, err error)
}
Manager describes the functionality for managing codec versions.
func NewDefaultManager ¶
func NewDefaultManager() Manager
NewDefaultManager returns a new codec manager.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package codecmock is a generated GoMock package.
|
Package codecmock is a generated GoMock package. |
|
Package codectest provides a test suite for testing codec implementations.
|
Package codectest provides a test suite for testing codec implementations. |
Click to show internal directories.
Click to hide internal directories.