bitstream_io

Trait Endianness

Source
pub trait Endianness: Sized {
Show 15 methods // Required methods fn push<N>(queue: &mut BitQueue<Self, N>, bits: u32, value: N) where N: Numeric; fn push_fixed<const B: u32, N>(queue: &mut BitQueue<Self, N>, value: N) where N: Numeric; fn pop<N>(queue: &mut BitQueue<Self, N>, bits: u32) -> N where N: Numeric; fn pop_fixed<const B: u32, N>(queue: &mut BitQueue<Self, N>) -> N where N: Numeric; fn drop<N>(queue: &mut BitQueue<Self, N>, bits: u32) where N: Numeric; fn next_zeros<N>(queue: &BitQueue<Self, N>) -> u32 where N: Numeric; fn next_ones<N>(queue: &BitQueue<Self, N>) -> u32 where N: Numeric; fn read_signed<R, S>(r: &mut R, bits: u32) -> Result<S> where R: BitRead, S: SignedNumeric; fn read_signed_fixed<R, const B: u32, S>(r: &mut R) -> Result<S> where R: BitRead, S: SignedNumeric; fn write_signed<W, S>(w: &mut W, bits: u32, value: S) -> Result<()> where W: BitWrite, S: SignedNumeric; fn write_signed_fixed<W, const B: u32, S>(w: &mut W, value: S) -> Result<()> where W: BitWrite, S: SignedNumeric; fn read_primitive<R, V>(r: &mut R) -> Result<V> where R: BitRead, V: Primitive; fn write_primitive<W, V>(w: &mut W, value: V) -> Result<()> where W: BitWrite, V: Primitive; fn read_numeric<R, V>(r: R) -> Result<V> where R: Read, V: Primitive; fn write_numeric<W, V>(w: W, value: V) -> Result<()> where W: Write, V: Primitive;
}
Expand description

A stream’s endianness, or byte order, for determining how bits should be read.

It comes in BigEndian and LittleEndian varieties (which may be shortened to BE and LE) and is not something programmers should have to implement in most cases.

Required Methods§

Source

fn push<N>(queue: &mut BitQueue<Self, N>, bits: u32, value: N)
where N: Numeric,

Pushes the given bits and value onto an accumulator with the given bits and value.

Source

fn push_fixed<const B: u32, N>(queue: &mut BitQueue<Self, N>, value: N)
where N: Numeric,

Pushes the given constant number of bits and value onto an accumulator with the given bits and value.

Source

fn pop<N>(queue: &mut BitQueue<Self, N>, bits: u32) -> N
where N: Numeric,

Pops a value with the given number of bits from an accumulator with the given bits and value.

Source

fn pop_fixed<const B: u32, N>(queue: &mut BitQueue<Self, N>) -> N
where N: Numeric,

Pops a value with the given number of constant bits from an accumulator with the given bits and value.

Source

fn drop<N>(queue: &mut BitQueue<Self, N>, bits: u32)
where N: Numeric,

Drops the given number of bits from an accumulator with the given bits and value.

Source

fn next_zeros<N>(queue: &BitQueue<Self, N>) -> u32
where N: Numeric,

Returns the next number of 0 bits from an accumulator with the given bits and value.

Source

fn next_ones<N>(queue: &BitQueue<Self, N>) -> u32
where N: Numeric,

Returns the next number of 1 bits from an accumulator with the given bits and value.

Source

fn read_signed<R, S>(r: &mut R, bits: u32) -> Result<S>
where R: BitRead, S: SignedNumeric,

Reads signed value from reader in this endianness

Source

fn read_signed_fixed<R, const B: u32, S>(r: &mut R) -> Result<S>
where R: BitRead, S: SignedNumeric,

Reads signed value from reader in this endianness

Source

fn write_signed<W, S>(w: &mut W, bits: u32, value: S) -> Result<()>
where W: BitWrite, S: SignedNumeric,

Writes signed value to writer in this endianness

Source

fn write_signed_fixed<W, const B: u32, S>(w: &mut W, value: S) -> Result<()>
where W: BitWrite, S: SignedNumeric,

Writes signed value to writer in this endianness

Source

fn read_primitive<R, V>(r: &mut R) -> Result<V>
where R: BitRead, V: Primitive,

Reads convertable numeric value from reader in this endianness

Source

fn write_primitive<W, V>(w: &mut W, value: V) -> Result<()>
where W: BitWrite, V: Primitive,

Writes convertable numeric value to writer in this endianness

Source

fn read_numeric<R, V>(r: R) -> Result<V>
where R: Read, V: Primitive,

Reads entire numeric value from reader in this endianness

Source

fn write_numeric<W, V>(w: W, value: V) -> Result<()>
where W: Write, V: Primitive,

Writes entire numeric value to writer in this endianness

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§