Trait bitendian::BitEndian

source ·
pub trait BitEndian<const N: usize> {
    // Required methods
    fn to_le_bytes(self) -> [u8; N];
    fn to_be_bytes(self) -> [u8; N];
    fn to_ne_bytes(self) -> [u8; N];
    fn from_le_bytes(bytes: [u8; N]) -> Self;
    fn from_be_bytes(bytes: [u8; N]) -> Self;
    fn from_ne_bytes(bytes: [u8; N]) -> Self;

    // Provided methods
    fn to_bytes_endian(self, endian: Endian) -> [u8; N]
       where Self: Sized { ... }
    fn from_bytes_endian(bytes: [u8; N], endian: Endian) -> Self
       where Self: Sized { ... }
}
Expand description

A type that can be infallibly written to or read from an array in an endian-dependent manner.

This trait does not provide to_le etc., since they can be found in num::Primint.

See the module documentation for usage examples.

Required Methods§

source

fn to_le_bytes(self) -> [u8; N]

Return the memory representation of this integer as a byte array in little-endian byte order.

source

fn to_be_bytes(self) -> [u8; N]

Return the memory representation of this integer as a byte array in big-endian (network) byte order.

source

fn to_ne_bytes(self) -> [u8; N]

Return the memory representation of this integer as a byte array in native byte order.

As the target platform’s native endianness is used, portable code should use Self::to_be_bytes or Self::to_le_bytes, as appropriate, instead.

source

fn from_le_bytes(bytes: [u8; N]) -> Self

Create a native endian integer value from its representation as a byte array in little endian.

source

fn from_be_bytes(bytes: [u8; N]) -> Self

Create a native endian integer value from its representation as a byte array in big (network) endian.

source

fn from_ne_bytes(bytes: [u8; N]) -> Self

Create a native endian integer value from its memory representation as a byte array in native endianness.

As the target platform’s native endianness is used, portable code likely wants to use Self::from_be_bytes or Self::from_le_bytes, as appropriate instead.

Provided Methods§

source

fn to_bytes_endian(self, endian: Endian) -> [u8; N]where Self: Sized,

Delegates to the appropriate method according to a run-time endianness.

source

fn from_bytes_endian(bytes: [u8; N], endian: Endian) -> Selfwhere Self: Sized,

Delegates to the appropriate method according to a run-time endianness.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl BitEndian<1> for i8

source§

fn to_le_bytes(self) -> [u8; 1]

source§

fn to_be_bytes(self) -> [u8; 1]

source§

fn to_ne_bytes(self) -> [u8; 1]

source§

fn from_le_bytes(bytes: [u8; 1]) -> Self

source§

fn from_be_bytes(bytes: [u8; 1]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 1]) -> Self

source§

impl BitEndian<1> for u8

source§

fn to_le_bytes(self) -> [u8; 1]

source§

fn to_be_bytes(self) -> [u8; 1]

source§

fn to_ne_bytes(self) -> [u8; 1]

source§

fn from_le_bytes(bytes: [u8; 1]) -> Self

source§

fn from_be_bytes(bytes: [u8; 1]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 1]) -> Self

source§

impl BitEndian<2> for i16

source§

fn to_le_bytes(self) -> [u8; 2]

source§

fn to_be_bytes(self) -> [u8; 2]

source§

fn to_ne_bytes(self) -> [u8; 2]

source§

fn from_le_bytes(bytes: [u8; 2]) -> Self

source§

fn from_be_bytes(bytes: [u8; 2]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 2]) -> Self

source§

impl BitEndian<2> for u16

source§

fn to_le_bytes(self) -> [u8; 2]

source§

fn to_be_bytes(self) -> [u8; 2]

source§

fn to_ne_bytes(self) -> [u8; 2]

source§

fn from_le_bytes(bytes: [u8; 2]) -> Self

source§

fn from_be_bytes(bytes: [u8; 2]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 2]) -> Self

source§

impl BitEndian<4> for f32

source§

fn to_le_bytes(self) -> [u8; 4]

source§

fn to_be_bytes(self) -> [u8; 4]

source§

fn to_ne_bytes(self) -> [u8; 4]

source§

fn from_le_bytes(bytes: [u8; 4]) -> Self

source§

fn from_be_bytes(bytes: [u8; 4]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 4]) -> Self

source§

impl BitEndian<4> for i32

source§

fn to_le_bytes(self) -> [u8; 4]

source§

fn to_be_bytes(self) -> [u8; 4]

source§

fn to_ne_bytes(self) -> [u8; 4]

source§

fn from_le_bytes(bytes: [u8; 4]) -> Self

source§

fn from_be_bytes(bytes: [u8; 4]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 4]) -> Self

source§

impl BitEndian<4> for u32

source§

fn to_le_bytes(self) -> [u8; 4]

source§

fn to_be_bytes(self) -> [u8; 4]

source§

fn to_ne_bytes(self) -> [u8; 4]

source§

fn from_le_bytes(bytes: [u8; 4]) -> Self

source§

fn from_be_bytes(bytes: [u8; 4]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 4]) -> Self

source§

impl BitEndian<8> for f64

source§

fn to_le_bytes(self) -> [u8; 8]

source§

fn to_be_bytes(self) -> [u8; 8]

source§

fn to_ne_bytes(self) -> [u8; 8]

source§

fn from_le_bytes(bytes: [u8; 8]) -> Self

source§

fn from_be_bytes(bytes: [u8; 8]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 8]) -> Self

source§

impl BitEndian<8> for i64

source§

fn to_le_bytes(self) -> [u8; 8]

source§

fn to_be_bytes(self) -> [u8; 8]

source§

fn to_ne_bytes(self) -> [u8; 8]

source§

fn from_le_bytes(bytes: [u8; 8]) -> Self

source§

fn from_be_bytes(bytes: [u8; 8]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 8]) -> Self

source§

impl BitEndian<8> for isize

source§

fn to_le_bytes(self) -> [u8; 8]

source§

fn to_be_bytes(self) -> [u8; 8]

source§

fn to_ne_bytes(self) -> [u8; 8]

source§

fn from_le_bytes(bytes: [u8; 8]) -> Self

source§

fn from_be_bytes(bytes: [u8; 8]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 8]) -> Self

source§

impl BitEndian<8> for u64

source§

fn to_le_bytes(self) -> [u8; 8]

source§

fn to_be_bytes(self) -> [u8; 8]

source§

fn to_ne_bytes(self) -> [u8; 8]

source§

fn from_le_bytes(bytes: [u8; 8]) -> Self

source§

fn from_be_bytes(bytes: [u8; 8]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 8]) -> Self

source§

impl BitEndian<8> for usize

source§

fn to_le_bytes(self) -> [u8; 8]

source§

fn to_be_bytes(self) -> [u8; 8]

source§

fn to_ne_bytes(self) -> [u8; 8]

source§

fn from_le_bytes(bytes: [u8; 8]) -> Self

source§

fn from_be_bytes(bytes: [u8; 8]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 8]) -> Self

source§

impl BitEndian<16> for i128

source§

fn to_le_bytes(self) -> [u8; 16]

source§

fn to_be_bytes(self) -> [u8; 16]

source§

fn to_ne_bytes(self) -> [u8; 16]

source§

fn from_le_bytes(bytes: [u8; 16]) -> Self

source§

fn from_be_bytes(bytes: [u8; 16]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 16]) -> Self

source§

impl BitEndian<16> for u128

source§

fn to_le_bytes(self) -> [u8; 16]

source§

fn to_be_bytes(self) -> [u8; 16]

source§

fn to_ne_bytes(self) -> [u8; 16]

source§

fn from_le_bytes(bytes: [u8; 16]) -> Self

source§

fn from_be_bytes(bytes: [u8; 16]) -> Self

source§

fn from_ne_bytes(bytes: [u8; 16]) -> Self

Implementors§