Minilib.Encoding.Binary
Defined in minilib-binary@0.5.1
Binary utility, such as: - Byte order - Byte buffer
Values
namespace Minilib.Encoding.Binary
get_u16_be
Type: Std::I64 -> Std::Array Std::U8 -> Std::U16
Decodes U16 from array
at position i
with big endian.
get_u16_le
Type: Std::I64 -> Std::Array Std::U8 -> Std::U16
Decodes U16 from array
at position i
with little endian.
get_u32_be
Type: Std::I64 -> Std::Array Std::U8 -> Std::U32
Decodes U32 from array
at position i
with big endian.
get_u32_le
Type: Std::I64 -> Std::Array Std::U8 -> Std::U32
Decodes U32 from array
at position i
with little endian.
get_u64_be
Type: Std::I64 -> Std::Array Std::U8 -> Std::U64
Decodes U64 from array
at position i
with big endian.
get_u64_le
Type: Std::I64 -> Std::Array Std::U8 -> Std::U64
Decodes U64 from array
at position i
with little endian.
get_u8_be
Type: Std::I64 -> Std::Array Std::U8 -> Std::U8
Decodes U8 from array
at position i
with big endian.
get_u8_le
Type: Std::I64 -> Std::Array Std::U8 -> Std::U8
Decodes U8 from array
at position i
with little endian.
set_u16_be
Type: Std::I64 -> Std::U16 -> Std::Array Std::U8 -> Std::Array Std::U8
Encodes U16 into array
at position i
with big endian.
set_u16_le
Type: Std::I64 -> Std::U16 -> Std::Array Std::U8 -> Std::Array Std::U8
Encodes U16 into array
at position i
with little endian.
set_u32_be
Type: Std::I64 -> Std::U32 -> Std::Array Std::U8 -> Std::Array Std::U8
Encodes U32 into array
at position i
with big endian.
set_u32_le
Type: Std::I64 -> Std::U32 -> Std::Array Std::U8 -> Std::Array Std::U8
Encodes U32 into array
at position i
with little endian.
set_u64_be
Type: Std::I64 -> Std::U64 -> Std::Array Std::U8 -> Std::Array Std::U8
Encodes U64 into array
at position i
with big endian.
set_u64_le
Type: Std::I64 -> Std::U64 -> Std::Array Std::U8 -> Std::Array Std::U8
Encodes U64 into array
at position i
with little endian.
set_u8_be
Type: Std::I64 -> Std::U8 -> Std::Array Std::U8 -> Std::Array Std::U8
Encodes U8 into array
at position i
with big endian.
set_u8_le
Type: Std::I64 -> Std::U8 -> Std::Array Std::U8 -> Std::Array Std::U8
Encodes U8 into array
at position i
with little endian.
namespace Minilib.Encoding.Binary::ByteBuffer
empty
Type: Std::I64 -> Minilib.Encoding.Binary::ByteOrder -> Minilib.Encoding.Binary::ByteBuffer
ByteBuffer::empty(capacity, byte_order)
creates new byte buffer such that:
- The internal byte array is an empty array with capacity capacity
- The byte order is byte_order
ensure_size
Type: Std::I64 -> Minilib.Encoding.Binary::ByteBuffer -> Minilib.Encoding.Binary::ByteBuffer
buf.ensure_size(req_size)
ensures that the size of the byte buffer is at least req_size
.
If not, appends zeros at the end of the byte buffer.
fill
Type: Std::I64 -> Std::U8 -> Minilib.Encoding.Binary::ByteOrder -> Minilib.Encoding.Binary::ByteBuffer
ByteBuffer::fill(size, value, byte_order)
creates new byte buffer such that:
- The internal byte array is initialized by size size
and filled with value
- The byte order is byte_order
from_u32_array
Type: Std::Array Std::U32 -> Minilib.Encoding.Binary::ByteOrder -> Minilib.Encoding.Binary::ByteBuffer
get_bytes
Type: Minilib.Encoding.Binary::ByteBuffer -> Std::Array Std::U8
Gets the internal byte array.
get_position
Type: Minilib.Encoding.Binary::ByteBuffer -> Std::I64
Gets the read/write position.
get_size
Type: Minilib.Encoding.Binary::ByteBuffer -> Std::I64
Gets the size of internal byte array.
get_u16
Type: Std::I64 -> Minilib.Encoding.Binary::ByteBuffer -> Std::U16
Decodes U16 from the byte buffer at position i
.
get_u32
Type: Std::I64 -> Minilib.Encoding.Binary::ByteBuffer -> Std::U32
Decodes U32 from the byte buffer at position i
.
get_u64
Type: Std::I64 -> Minilib.Encoding.Binary::ByteBuffer -> Std::U64
Decodes U64 from the byte buffer at position i
.
get_u8
Type: Std::I64 -> Minilib.Encoding.Binary::ByteBuffer -> Std::U8
Decodes U8 from the byte buffer at position i
.
make
Type: Std::Array Std::U8 -> Minilib.Encoding.Binary::ByteOrder -> Minilib.Encoding.Binary::ByteBuffer
ByteBuffer::make(array, byte_order)
creates new byte buffer such that:
- The internal byte array is array
- The byte order is byte_order
set_u16
Type: Std::I64 -> Std::U16 -> Minilib.Encoding.Binary::ByteBuffer -> Minilib.Encoding.Binary::ByteBuffer
Encodes U16 into the byte buffer at position i
.
set_u32
Type: Std::I64 -> Std::U32 -> Minilib.Encoding.Binary::ByteBuffer -> Minilib.Encoding.Binary::ByteBuffer
Encodes U32 into the byte buffer at position i
.
set_u64
Type: Std::I64 -> Std::U64 -> Minilib.Encoding.Binary::ByteBuffer -> Minilib.Encoding.Binary::ByteBuffer
Encodes U64 into the byte buffer at position i
.
set_u8
Type: Std::I64 -> Std::U8 -> Minilib.Encoding.Binary::ByteBuffer -> Minilib.Encoding.Binary::ByteBuffer
Encodes U8 into the byte buffer at position i
.
to_u32_array
Type: Minilib.Encoding.Binary::ByteBuffer -> Std::Array Std::U32
to_u8_array
Type: Minilib.Encoding.Binary::ByteBuffer -> Std::Array Std::U8
namespace Minilib.Encoding.Binary::Marshal
marshal
Type: [a : Minilib.Encoding.Binary::Marshal] a -> Minilib.Encoding.Binary::ByteBuffer -> Minilib.Encoding.Binary::ByteBuffer
Encodes a value to the byte buffer.
namespace Minilib.Encoding.Binary::Unmarshal
unmarshal
Type: [a : Minilib.Encoding.Binary::Unmarshal] Minilib.Encoding.Binary::ByteBuffer -> Std::Result Std::ErrMsg (a, Minilib.Encoding.Binary::ByteBuffer)
Decodes a value from the byte buffer.
Types and aliases
namespace Minilib.Encoding.Binary
ByteBuffer
Defined as: type ByteBuffer = unbox struct { ...fields... }
A type of byte buffer that supports encoding values to/decoding values from memory.
field array
Type: Std::Array Std::U8
internal byte array
field byte_order
Type: Minilib.Encoding.Binary::ByteOrder
byte order
field position
Type: Std::I64
read/write position
ByteOrder
Defined as: type ByteOrder = unbox union { ...variants... }
A union type of byte order (endianness).
For example, 0x12345678_U32
is encoded as [0x78_U8, 0x56_U8, 0x34_U8, 0x12_U8]
in little endian,
[0x12_U8, 0x34_U8, 0x56_U8, 0x78_U8]
in big endian.
variant little_endian
Type: ()
variant big_endian
Type: ()
Traits and aliases
namespace Minilib.Encoding.Binary
trait a : Marshal
Trait for a type that supports marshalling (encoding) a value to a byte buffer. For details, see https://en.wikipedia.org/wiki/Marshalling_(computer_science).
method marshal
Type: a -> Minilib.Encoding.Binary::ByteBuffer -> Minilib.Encoding.Binary::ByteBuffer
Encodes a value to the byte buffer.
trait a : Unmarshal
Trait for a type that supports unmarshalling (decoding) a value from a byte buffer. For details, see https://en.wikipedia.org/wiki/Marshalling_(computer_science).
method unmarshal
Type: Minilib.Encoding.Binary::ByteBuffer -> Std::Result Std::String (a, Minilib.Encoding.Binary::ByteBuffer)
Decodes a value from the byte buffer.