pub trait Endianness: Sized {
    fn push<N>(queue: &mut BitQueue<Self, N>, bits: u32, value: N)
    where
        N: Numeric
; fn pop<N>(queue: &mut BitQueue<Self, N>, bits: u32) -> 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 BitReader<R, Self>, bits: u32) -> Result<S>
    where
        R: Read,
        S: SignedNumeric
; fn write_signed<W, S>(
        w: &mut BitWriter<W, Self>,
        bits: u32,
        value: S
    ) -> Result<()>
    where
        W: Write,
        S: SignedNumeric
; }
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

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

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

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

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

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

Reads signed value from reader in this endianness

Writes signed value to writer in this endianness

Implementors