Trait bitstream_io::Endianness
source · pub trait Endianness: Sized {
// Required methods
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_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§
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_primitive<R, V>(r: &mut R) -> Result<V>
fn read_primitive<R, V>(r: &mut R) -> Result<V>
Reads convertable numeric value from reader in this endianness
sourcefn write_primitive<W, V>(w: &mut W, value: V) -> Result<()>
fn write_primitive<W, V>(w: &mut W, value: V) -> Result<()>
Writes convertable numeric value to writer in this endianness
sourcefn read_numeric<R, V>(r: R) -> Result<V>
fn read_numeric<R, V>(r: R) -> Result<V>
Reads entire numeric value from reader in this endianness