encoding.binary #
Description
encoding.binary
contains utility functions for converting between an array of bytes ([]u8
)
and unsigned integers of various widths (u16
, u32
, and u64
).
There are two ways in which bytes can be encoded:
- Little endian: The least significant bytes are stored first, followed by the most significant bytes.
- Big endian: The most significant bytes are stored first, opposite to the little endian convention.
For example, let us take the number 0x12345678
. In little endian, the bytes are extracted as
0x78
, 0x56
, 0x34
, and 0x12
. In big endian, the bytes are 0x12
, 0x34
, 0x56
,
and 0x78
.
We follow a similar procedure when we want to go the other way around. Consider the second
sequence of bytes in the previous example: 0x12
, 0x34
, 0x56
, and 0x78
. If we encode
this sequence in little endian format, we get the integer 0x78563412
. If we encode this
sequence in big endian, we get 0x12345678
.
Note The functions in this module assume appropriately sized u8 arrays. If the sizes are not valid, the functions will panic.
fn big_endian_put_u16 #
fn big_endian_put_u16(mut b []u8, v u16)
big_endian_put_u16 writes a u16 to the first two bytes in the array b in big endian order.
fn big_endian_put_u16_at #
fn big_endian_put_u16_at(mut b []u8, v u16, o int)
big_endian_put_u16_at writes a u16 to the two bytes in the array b at the specified offset in big endian order.
fn big_endian_put_u16_end #
fn big_endian_put_u16_end(mut b []u8, v u16)
big_endian_put_u16_end writes a u16 to the last two bytes in the array b in big endian order.
fn big_endian_put_u32 #
fn big_endian_put_u32(mut b []u8, v u32)
big_endian_put_u32 writes a u32 to the first four bytes in the array b in big endian order.
fn big_endian_put_u32_at #
fn big_endian_put_u32_at(mut b []u8, v u32, o int)
big_endian_put_u32_at writes a u32 to four bytes in the array b at the specified offset in big endian order.
fn big_endian_put_u32_end #
fn big_endian_put_u32_end(mut b []u8, v u32)
big_endian_put_u32_end writes a u32 to the last four bytes in the array b in big endian order.
fn big_endian_put_u64 #
fn big_endian_put_u64(mut b []u8, v u64)
big_endian_put_u64 writes a u64 to the first eight bytes in the array b in big endian order.
fn big_endian_put_u64_at #
fn big_endian_put_u64_at(mut b []u8, v u64, o int)
big_endian_put_u64_at writes a u64 to eight bytes in the array b at the specified offset in big endian order.
fn big_endian_put_u64_end #
fn big_endian_put_u64_end(mut b []u8, v u64)
big_endian_put_u64_end writes a u64 to the last eight bytes in the array b at the specified offset in big endian order.
fn big_endian_u16 #
fn big_endian_u16(b []u8) u16
big_endian_u16 creates a u16 from the first two bytes in the array b in big endian order.
fn big_endian_u16_at #
fn big_endian_u16_at(b []u8, o int) u16
big_endian_u16_at creates a u16 from two bytes in the array b at the specified offset in big endian order.
fn big_endian_u16_end #
fn big_endian_u16_end(b []u8) u16
big_endian_u16_end creates a u16 from two bytes in the array b at the specified offset in big endian order.
fn big_endian_u32 #
fn big_endian_u32(b []u8) u32
big_endian_u32 creates a u32 from four bytes in the array b in big endian order.
fn big_endian_u32_at #
fn big_endian_u32_at(b []u8, o int) u32
big_endian_u32_at creates a u32 from four bytes in the array b at the specified offset in big endian order.
fn big_endian_u32_end #
fn big_endian_u32_end(b []u8) u32
big_endian_u32_end creates a u32 from the last four bytes in the array b in big endian order.
fn big_endian_u64 #
fn big_endian_u64(b []u8) u64
big_endian_u64 creates a u64 from the first eight bytes in the array b in big endian order.
fn big_endian_u64_at #
fn big_endian_u64_at(b []u8, o int) u64
big_endian_u64_at creates a u64 from eight bytes in the array b at the specified offset in big endian order.
fn big_endian_u64_end #
fn big_endian_u64_end(b []u8) u64
big_endian_u64_end creates a u64 from the last eight bytes in the array b in big endian order.
fn little_endian_put_u16 #
fn little_endian_put_u16(mut b []u8, v u16)
little_endian_put_u16 writes a u16 to the first two bytes in the array b in little endian order.
fn little_endian_put_u16_at #
fn little_endian_put_u16_at(mut b []u8, v u16, o int)
little_endian_put_u16_at writes a u16 to the two bytes in the array b at the specified offset in little endian order.
fn little_endian_put_u16_end #
fn little_endian_put_u16_end(mut b []u8, v u16)
little_endian_put_u16_end writes a u16 to the last two bytes of the array b in little endian order.
fn little_endian_put_u32 #
fn little_endian_put_u32(mut b []u8, v u32)
little_endian_put_u32 writes a u32 to the first four bytes in the array b in little endian order.
fn little_endian_put_u32_at #
fn little_endian_put_u32_at(mut b []u8, v u32, o int)
little_endian_put_u32_at writes a u32 to the two bytes in the array b at the specified offset in little endian order.
fn little_endian_put_u32_end #
fn little_endian_put_u32_end(mut b []u8, v u32)
little_endian_put_u32_end writes a u32 to the last two bytes in the array b in little endian order.
fn little_endian_put_u64 #
fn little_endian_put_u64(mut b []u8, v u64)
little_endian_put_u64 writes a u64 to the first eight bytes in the array b in little endian order.
fn little_endian_put_u64_at #
fn little_endian_put_u64_at(mut b []u8, v u64, o int)
little_endian_put_u64_at writes a u64 to the eight bytes in the array b at the specified offset in little endian order.
fn little_endian_put_u64_end #
fn little_endian_put_u64_end(mut b []u8, v u64)
little_endian_put_u64_end writes a u64 to the last eight bytes in the array b at in little endian order.
fn little_endian_u16 #
fn little_endian_u16(b []u8) u16
little_endian_u16 creates a u16 from the first two bytes in the array b in little endian order.
fn little_endian_u16_at #
fn little_endian_u16_at(b []u8, o int) u16
little_endian_u16_at creates a u16 from two bytes in the array b at the specified offset in little endian order.
fn little_endian_u16_end #
fn little_endian_u16_end(b []u8) u16
little_endian_u16_end creates a u16 from the last two bytes of the array b in little endian order.
fn little_endian_u32 #
fn little_endian_u32(b []u8) u32
little_endian_u32 creates a u32 from the first four bytes in the array b in little endian order.
fn little_endian_u32_at #
fn little_endian_u32_at(b []u8, o int) u32
little_endian_u32_at creates a u32 from four bytes in the array b at the specified offset in little endian order.
fn little_endian_u32_end #
fn little_endian_u32_end(b []u8) u32
little_endian_u32_end creates a u32 from the last four bytes in the array b in little endian order.
fn little_endian_u64 #
fn little_endian_u64(b []u8) u64
little_endian_u64 creates a u64 from the first eight bytes in the array b in little endian order.
fn little_endian_u64_at #
fn little_endian_u64_at(b []u8, o int) u64
little_endian_u64_at creates a u64 from eight bytes in the array b at the specified offset in little endian order.
fn little_endian_u64_end #
fn little_endian_u64_end(b []u8) u64
little_endian_u64_end creates a u64 from the last eight bytes in the array b in little endian order.
- README
- fn big_endian_put_u16
- fn big_endian_put_u16_at
- fn big_endian_put_u16_end
- fn big_endian_put_u32
- fn big_endian_put_u32_at
- fn big_endian_put_u32_end
- fn big_endian_put_u64
- fn big_endian_put_u64_at
- fn big_endian_put_u64_end
- fn big_endian_u16
- fn big_endian_u16_at
- fn big_endian_u16_end
- fn big_endian_u32
- fn big_endian_u32_at
- fn big_endian_u32_end
- fn big_endian_u64
- fn big_endian_u64_at
- fn big_endian_u64_end
- fn little_endian_put_u16
- fn little_endian_put_u16_at
- fn little_endian_put_u16_end
- fn little_endian_put_u32
- fn little_endian_put_u32_at
- fn little_endian_put_u32_end
- fn little_endian_put_u64
- fn little_endian_put_u64_at
- fn little_endian_put_u64_end
- fn little_endian_u16
- fn little_endian_u16_at
- fn little_endian_u16_end
- fn little_endian_u32
- fn little_endian_u32_at
- fn little_endian_u32_end
- fn little_endian_u64
- fn little_endian_u64_at
- fn little_endian_u64_end