Namespace: go.std.encoding.binary
v1.0Contents
Summary
Provides a low-level interface to the encoding/binary package.
Package binary implements simple translation between numbers and byte
sequences and encoding and decoding of varints.
Numbers are translated by reading and writing fixed-size values.
A fixed-size value is either a fixed-size arithmetic
type (bool, int8, uint8, int16, float32, complex64, ...)
or an array or struct containing only fixed-size values.
The varint functions encode and decode single integer values using
a variable-length encoding; smaller values require fewer bytes.
For a specification, see
https://developers.google.com/protocol-buffers/docs/encoding.
This package favors simplicity over efficiency. Clients that require
high-performance serialization, especially for large data structures,
should look at more advanced solutions such as the encoding/gob
package or protocol buffers.
Index
- BigEndian
- ByteOrder
- LittleEndian
- MaxVarintLen16
- MaxVarintLen32
- MaxVarintLen64
- PutUvarint
- PutVarint
- Read
- ReadUvarint
- ReadVarint
- Size
- Uvarint
- Varint
- Write
- arrayOfByteOrder
Legend
-
Constant
Variable
Function
Macro
Special form
Type
GoVar
Receiver/Method
Constants
Constants are variables with :const true in their metadata. Joker currently does not recognize them as special; as such, it allows redefining them or their values.-
MaxVarintLen16
Int v1.0MaxVarintLenN is the maximum length of a varint-encoded N-bit integer.
-
MaxVarintLen32
Int v1.0MaxVarintLenN is the maximum length of a varint-encoded N-bit integer.
-
MaxVarintLen64
Int v1.0MaxVarintLenN is the maximum length of a varint-encoded N-bit integer.
Variables
-
BigEndian
Var v1.0BigEndian is the big-endian implementation of ByteOrder.
-
LittleEndian
Var v1.0LittleEndian is the little-endian implementation of ByteOrder.
Functions, Macros, and Special Forms
-
PutUvarint
Function v1.0(PutUvarint buf x)
PutUvarint encodes a uint64 into buf and returns the number of bytes written.
If the buffer is too small, PutUvarint will panic.
Go input arguments: (buf []byte, x uint64)
Go returns: int
Joker input arguments: [^arrayOfByte buf, ^Number x]
Joker returns: ^Int -
PutVarint
Function v1.0(PutVarint buf x)
PutVarint encodes an int64 into buf and returns the number of bytes written.
If the buffer is too small, PutVarint will panic.
Go input arguments: (buf []byte, x int64)
Go returns: int
Joker input arguments: [^arrayOfByte buf, ^BigInt x]
Joker returns: ^Int -
Read
Function v1.0(Read r order data)
Read reads structured binary data from r into data.
Data must be a pointer to a fixed-size value or a slice
of fixed-size values.
Bytes read from r are decoded using the specified byte order
and written to successive fields of the data.
When decoding boolean values, a zero byte is decoded as false, and
any other non-zero byte is decoded as true.
When reading into structs, the field data for fields with
blank (_) field names is skipped; i.e., blank field names
may be used for padding.
When reading into a struct, all non-blank fields must be exported
or Read may panic.
The error is EOF only if no bytes were read.
If an EOF happens after reading some but not all the bytes,
Read returns ErrUnexpectedEOF.
Go input arguments: (r io.Reader, order ByteOrder, data any)
Go returns: error
Joker input arguments: [^go.std.io/Reader r, ^ByteOrder order, ^GoObject data]
Joker returns: ^Error -
ReadUvarint
Function v1.0(ReadUvarint r)
ReadUvarint reads an encoded unsigned integer from r and returns it as a uint64.
Go input arguments: (r io.ByteReader)
Go returns: (uint64, error)
Joker input arguments: [^go.std.io/ByteReader r]
Joker returns: [^Number, ^Error] -
ReadVarint
Function v1.0(ReadVarint r)
ReadVarint reads an encoded signed integer from r and returns it as an int64.
Go input arguments: (r io.ByteReader)
Go returns: (int64, error)
Joker input arguments: [^go.std.io/ByteReader r]
Joker returns: [^BigInt, ^Error] -
Size
Function v1.0(Size v)
Size returns how many bytes Write would generate to encode the value v, which
must be a fixed-size value or a slice of fixed-size values, or a pointer to such data.
If v is neither of these, Size returns -1.
Go input arguments: (v any)
Go returns: int
Joker input arguments: [^GoObject v]
Joker returns: ^Int -
Uvarint
Function v1.0(Uvarint buf)
Uvarint decodes a uint64 from buf and returns that value and the
number of bytes read (> 0). If an error occurred, the value is 0
and the number of bytes n is <= 0 meaning:
n == 0: buf too small
n < 0: value larger than 64 bits (overflow)
and -n is the number of bytes read
Go input arguments: (buf []byte)
Go returns: (uint64, int)
Joker input arguments: [^arrayOfByte buf]
Joker returns: [^Number, ^Int] -
Varint
Function v1.0(Varint buf)
Varint decodes an int64 from buf and returns that value and the
number of bytes read (> 0). If an error occurred, the value is 0
and the number of bytes n is <= 0 with the following meaning:
n == 0: buf too small
n < 0: value larger than 64 bits (overflow)
and -n is the number of bytes read
Go input arguments: (buf []byte)
Go returns: (int64, int)
Joker input arguments: [^arrayOfByte buf]
Joker returns: [^BigInt, ^Int] -
Write
Function v1.0(Write w order data)
Write writes the binary representation of data into w.
Data must be a fixed-size value or a slice of fixed-size
values, or a pointer to such data.
Boolean values encode as one byte: 1 for true, and 0 for false.
Bytes written to w are encoded using the specified byte order
and read from successive fields of the data.
When writing structs, zero values are written for fields
with blank (_) field names.
Go input arguments: (w io.Writer, order ByteOrder, data any)
Go returns: error
Joker input arguments: [^go.std.io/Writer w, ^ByteOrder order, ^GoObject data]
Joker returns: ^Error
Types
-
ByteOrder
Abstract Type v1.0A ByteOrder specifies how to convert byte sequences into
16-, 32-, or 64-bit unsigned integers.
-
PutUint16
Method for ByteOrder v1.0([arg1 arg2])
-
PutUint32
Method for ByteOrder v1.0([arg1 arg2])
-
PutUint64
Method for ByteOrder v1.0([arg1 arg2])
-
String
Method for ByteOrder v1.0([])
-
Uint16
Method for ByteOrder v1.0([arg1])
-
Uint32
Method for ByteOrder v1.0([arg1])
-
Uint64
Method for ByteOrder v1.0([arg1])
-
arrayOfByteOrder
Concrete Type v1.0A ByteOrder specifies how to convert byte sequences into
16-, 32-, or 64-bit unsigned integers.