Trait bitstream_io::Endianness
source · 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 R, bits: u32) -> 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 read_numeric<R, N>(r: R) -> Result<N>
where
R: Read,
N: Numeric;
fn write_numeric<W, N>(w: W, value: N) -> Result<()>
where
W: Write,
N: Numeric;
}
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
sourcefn push<N>(queue: &mut BitQueue<Self, N>, bits: u32, value: N)where
N: Numeric,
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.
sourcefn pop<N>(queue: &mut BitQueue<Self, N>, bits: u32) -> Nwhere
N: Numeric,
fn pop<N>(queue: &mut BitQueue<Self, N>, bits: u32) -> Nwhere
N: Numeric,
Pops a value with the given number of bits from an accumulator with the given bits and value.
sourcefn drop<N>(queue: &mut BitQueue<Self, N>, bits: u32)where
N: Numeric,
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.
sourcefn next_zeros<N>(queue: &BitQueue<Self, N>) -> u32where
N: Numeric,
fn next_zeros<N>(queue: &BitQueue<Self, N>) -> u32where
N: Numeric,
Returns the next number of 0 bits from an accumulator with the given bits and value.
sourcefn next_ones<N>(queue: &BitQueue<Self, N>) -> u32where
N: Numeric,
fn next_ones<N>(queue: &BitQueue<Self, N>) -> u32where
N: Numeric,
Returns the next number of 1 bits from an accumulator with the given bits and value.
sourcefn read_signed<R, S>(r: &mut R, bits: u32) -> Result<S>where
R: BitRead,
S: SignedNumeric,
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
sourcefn write_signed<W, S>(w: &mut W, bits: u32, value: S) -> Result<()>where
W: BitWrite,
S: SignedNumeric,
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
sourcefn read_numeric<R, N>(r: R) -> Result<N>where
R: Read,
N: Numeric,
fn read_numeric<R, N>(r: R) -> Result<N>where
R: Read,
N: Numeric,
Reads entire numeric value from reader in this endianness