Documentation ¶
Index ¶
- Constants
- Variables
- func ReadElement(r io.Reader, elm any) error
- func ReadElements(r io.Reader, elms ...any) error
- func ReadVarBytes(r io.Reader) ([]byte, error)
- func ReadVarInt(r io.Reader) (uint64, error)
- func ReadVarString(r io.Reader) (string, error)
- func VarBytesSerializeSize(bytes []byte) int
- func VarIntSerializeSize(val uint64) int
- func VarStringSerializeSize(str string) int
- func WriteElement(w io.Writer, elm any) error
- func WriteElements(w io.Writer, elements ...any) error
- func WriteVarBytes(w io.Writer, bytes []byte) error
- func WriteVarInt(w io.Writer, val uint64) error
- func WriteVarString(w io.Writer, str string) error
Constants ¶
const ( // MaxPayloadSize is the maximum bytes a message can be regardless of other // individual limits imposed by messages themselves. MaxPayloadSize = 1024 * 1024 * 32 // 32MB )
Variables ¶
var ( ErrOverflow = errors.New("overflow") ErrNonCanonical = errors.New("non canonical") )
Functions ¶
func ReadElement ¶
ReadElement reads the next sequence of bytes from r using little endian depending on the concrete type of element pointed to.
func ReadElements ¶
ReadElements reads multiple items from r. It is equivalent to multiple calls to readElement.
func ReadVarBytes ¶
ReadVarBytes reads a variable length byte array. A byte array is encoded as a varInt containing the length of the array followed by the bytes themselves. An error is returned if the length is greater than the maximum payload size since it helps protect against memory exhaustion attacks and forced panics through malformed messages.
func ReadVarInt ¶
ReadVarInt reads a variable length integer from r and returns it as a uint64.
func ReadVarString ¶
ReadVarString reads a variable length string from r and returns it as a Go string. A variable length string is encoded as a variable length integer containing the length of the string followed by the bytes that represent the string itself. An error is returned if the length is greater than the maximum payload size since it helps protect against memory exhaustion attacks and forced panics through malformed messages.
func VarBytesSerializeSize ¶
VarBytesSerializeSize returns the number of bytes it would take to serialize val as a byte array.
func VarIntSerializeSize ¶
VarIntSerializeSize returns the number of bytes it would take to serialize val as a variable length integer.
func VarStringSerializeSize ¶
VarStringSerializeSize returns the number of bytes it would take to serialize val as a string.
func WriteElement ¶
WriteElement writes the little endian representation of element to w.
func WriteElements ¶
WriteElements writes multiple items to w. It is equivalent to multiple calls to writeElement.
func WriteVarBytes ¶
WriteVarBytes serializes a variable length byte array to w as a varInt containing the number of bytes, followed by the bytes themselves.
func WriteVarInt ¶
WriteVarInt serializes val to w using a variable number of bytes depending on its value.
Types ¶
This section is empty.