Documentation ¶
Overview ¶
Package protodelim marshals and unmarshals varint size-delimited messages.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MarshalTo ¶
MarshalTo writes a varint size-delimited wire-format message to w with the default options.
See the documentation for MarshalOptions.MarshalTo.
func UnmarshalFrom ¶
UnmarshalFrom parses and consumes a varint size-delimited wire-format message from r with the default options. The provided message must be mutable (e.g., a non-nil pointer to a message).
See the documentation for UnmarshalOptions.UnmarshalFrom.
Types ¶
type MarshalOptions ¶
type MarshalOptions struct{ proto.MarshalOptions }
MarshalOptions is a configurable varint size-delimited marshaler.
type Reader ¶
type Reader interface { io.Reader io.ByteReader }
Reader is the interface expected by UnmarshalFrom. It is implemented by *bufio.Reader.
type SizeTooLargeError ¶
type SizeTooLargeError struct { // Size is the varint size of the message encountered // that was larger than the provided MaxSize. Size uint64 // MaxSize is the MaxSize limit configured in UnmarshalOptions, which Size exceeded. MaxSize uint64 }
SizeTooLargeError is an error that is returned when the unmarshaler encounters a message size that is larger than its configured [UnmarshalOptions.MaxSize].
func (*SizeTooLargeError) Error ¶
func (e *SizeTooLargeError) Error() string
type UnmarshalOptions ¶
type UnmarshalOptions struct { proto.UnmarshalOptions // MaxSize is the maximum size in wire-format bytes of a single message. // Unmarshaling a message larger than MaxSize will return an error. // A zero MaxSize will default to 4 MiB. // Setting MaxSize to -1 disables the limit. MaxSize int64 }
UnmarshalOptions is a configurable varint size-delimited unmarshaler.
func (UnmarshalOptions) UnmarshalFrom ¶
func (o UnmarshalOptions) UnmarshalFrom(r Reader, m proto.Message) error
UnmarshalFrom parses and consumes a varint size-delimited wire-format message from r. The provided message must be mutable (e.g., a non-nil pointer to a message).
The error is io.EOF error only if no bytes are read. If an EOF happens after reading some but not all the bytes, UnmarshalFrom returns a non-io.EOF error. In particular if r returns a non-io.EOF error, UnmarshalFrom returns it unchanged, and if only a size is read with no subsequent message, io.ErrUnexpectedEOF is returned.