Trait bitstream_io::Primitive

source ·
pub trait Primitive {
    type Bytes: AsRef<[u8]> + AsMut<[u8]>;

    // Required methods
    fn buffer() -> Self::Bytes;
    fn to_be_bytes(self) -> Self::Bytes;
    fn to_le_bytes(self) -> Self::Bytes;
    fn from_be_bytes(bytes: Self::Bytes) -> Self;
    fn from_le_bytes(bytes: Self::Bytes) -> Self;
}
Expand description

A trait intended for simple fixed-length primitives (such as ints and floats) which allows them to be read and written to streams of different endiannesses verbatim.

Required Associated Types§

source

type Bytes: AsRef<[u8]> + AsMut<[u8]>

The raw byte representation of this numeric type

Required Methods§

source

fn buffer() -> Self::Bytes

An empty buffer of this type’s size

source

fn to_be_bytes(self) -> Self::Bytes

Our value in big-endian bytes

source

fn to_le_bytes(self) -> Self::Bytes

Our value in little-endian bytes

source

fn from_be_bytes(bytes: Self::Bytes) -> Self

Convert big-endian bytes to our value

source

fn from_le_bytes(bytes: Self::Bytes) -> Self

Convert little-endian bytes to out value

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Primitive for f32

§

type Bytes = [u8; 4]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl Primitive for f64

§

type Bytes = [u8; 8]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl Primitive for i8

§

type Bytes = [u8; 1]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl Primitive for i16

§

type Bytes = [u8; 2]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl Primitive for i32

§

type Bytes = [u8; 4]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl Primitive for i64

§

type Bytes = [u8; 8]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl Primitive for i128

§

type Bytes = [u8; 16]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl Primitive for u8

§

type Bytes = [u8; 1]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl Primitive for u16

§

type Bytes = [u8; 2]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl Primitive for u32

§

type Bytes = [u8; 4]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl Primitive for u64

§

type Bytes = [u8; 8]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl Primitive for u128

§

type Bytes = [u8; 16]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

source§

impl<const N: usize> Primitive for [u8; N]

§

type Bytes = [u8; N]

source§

fn buffer() -> Self::Bytes

source§

fn to_be_bytes(self) -> Self::Bytes

source§

fn to_le_bytes(self) -> Self::Bytes

source§

fn from_be_bytes(bytes: Self::Bytes) -> Self

source§

fn from_le_bytes(bytes: Self::Bytes) -> Self

Implementors§