Struct dsi_bitstream::impls::BitReader
source · pub struct BitReader<E: Endianness, WR, RP: ReadParams = DefaultReadParams> { /* private fields */ }
Expand description
An implementation of BitRead
for a WordRead
with word u64
and of
BitSeek
for a WordSeek
.
This implementation accesses randomly the underlying WordRead
without
any buffering. It is usually slower than
BufBitReader
.
The peek word is u32
. The value returned by
peek_bits
contains at least 32 bits
(extended with zeros beyond end of stream), that is, a full peek word.
The additional type parameter RP
is used to select the parameters for the
instantanous codes, but the casual user should be happy with the default
value. See ReadParams
for more details.
Implementations§
source§impl<E: Endianness, WR, RP: ReadParams> BitReader<E, WR, RP>
impl<E: Endianness, WR, RP: ReadParams> BitReader<E, WR, RP>
Trait Implementations§
source§impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>, RP: ReadParams> BitRead<BigEndian> for BitReader<BE, WR, RP>
impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>, RP: ReadParams> BitRead<BigEndian> for BitReader<BE, WR, RP>
type Error = <WR as WordRead>::Error
source§fn skip_bits(&mut self, n_bits: usize) -> Result<(), Self::Error>
fn skip_bits(&mut self, n_bits: usize) -> Result<(), Self::Error>
Skip
n
bits from the stream.source§fn read_bits(&mut self, n_bits: usize) -> Result<u64, Self::Error>
fn read_bits(&mut self, n_bits: usize) -> Result<u64, Self::Error>
Read
n
bits and return them in the lowest bits. Read moresource§fn peek_bits(&mut self, n_bits: usize) -> Result<u32, Self::Error>
fn peek_bits(&mut self, n_bits: usize) -> Result<u32, Self::Error>
Peeks at
n
bits without advancing the stream position.
n
must be nonzero, and at most PeekWord::BITS
.source§impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>, RP: ReadParams> BitRead<LittleEndian> for BitReader<LE, WR, RP>
impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>, RP: ReadParams> BitRead<LittleEndian> for BitReader<LE, WR, RP>
type Error = <WR as WordRead>::Error
source§fn skip_bits(&mut self, n_bits: usize) -> Result<(), Self::Error>
fn skip_bits(&mut self, n_bits: usize) -> Result<(), Self::Error>
Skip
n
bits from the stream.source§fn read_bits(&mut self, n_bits: usize) -> Result<u64, Self::Error>
fn read_bits(&mut self, n_bits: usize) -> Result<u64, Self::Error>
Read
n
bits and return them in the lowest bits. Read moresource§fn peek_bits(&mut self, n_bits: usize) -> Result<u32, Self::Error>
fn peek_bits(&mut self, n_bits: usize) -> Result<u32, Self::Error>
Peeks at
n
bits without advancing the stream position.
n
must be nonzero, and at most PeekWord::BITS
.source§impl<E: Clone + Endianness, WR: Clone, RP: Clone + ReadParams> Clone for BitReader<E, WR, RP>
impl<E: Clone + Endianness, WR: Clone, RP: Clone + ReadParams> Clone for BitReader<E, WR, RP>
source§impl<E: Debug + Endianness, WR: Debug, RP: Debug + ReadParams> Debug for BitReader<E, WR, RP>
impl<E: Debug + Endianness, WR: Debug, RP: Debug + ReadParams> Debug for BitReader<E, WR, RP>
source§impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> DeltaRead<BigEndian> for BitReader<BigEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> DeltaRead<BigEndian> for BitReader<BigEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
source§impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> DeltaRead<LittleEndian> for BitReader<LittleEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> DeltaRead<LittleEndian> for BitReader<LittleEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
source§impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> GammaRead<BigEndian> for BitReader<BigEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> GammaRead<BigEndian> for BitReader<BigEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
source§impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> GammaRead<LittleEndian> for BitReader<LittleEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> GammaRead<LittleEndian> for BitReader<LittleEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
source§impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> ZetaRead<BigEndian> for BitReader<BigEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> ZetaRead<BigEndian> for BitReader<BigEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
source§impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> ZetaRead<LittleEndian> for BitReader<LittleEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
impl<E: Error, WR: WordRead<Error = E, Word = u64> + WordSeek<Error = E>> ZetaRead<LittleEndian> for BitReader<LittleEndian, WR, DefaultReadParams>where
WR::Word: DoubleType + UpcastableInto<u64>,
<WR::Word as DoubleType>::DoubleType: CastableInto<u64>,
Auto Trait Implementations§
impl<E, WR, RP> RefUnwindSafe for BitReader<E, WR, RP>
impl<E, WR, RP> Send for BitReader<E, WR, RP>
impl<E, WR, RP> Sync for BitReader<E, WR, RP>
impl<E, WR, RP> Unpin for BitReader<E, WR, RP>
impl<E, WR, RP> UnwindSafe for BitReader<E, WR, RP>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
impl<T, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
source§impl<B> DeltaReadParam<BigEndian> for Bwhere
B: GammaReadParam<BigEndian>,
impl<B> DeltaReadParam<BigEndian> for Bwhere
B: GammaReadParam<BigEndian>,
source§impl<B> DeltaReadParam<LittleEndian> for Bwhere
B: GammaReadParam<LittleEndian>,
impl<B> DeltaReadParam<LittleEndian> for Bwhere
B: GammaReadParam<LittleEndian>,
fn read_delta_param<const USE_DELTA_TABLE: bool, const USE_GAMMA_TABLE: bool>( &mut self ) -> Result<u64, <B as BitRead<LittleEndian>>::Error>
fn skip_delta_param<const USE_DELTA_TABLE: bool, const USE_GAMMA_TABLE: bool>( &mut self ) -> Result<(), <B as BitRead<LittleEndian>>::Error>
source§impl<T> DowncastableFrom<T> for T
impl<T> DowncastableFrom<T> for T
source§fn downcast_from(value: T) -> T
fn downcast_from(value: T) -> T
Truncate the current UnsignedInt to a possibly smaller size
source§impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
source§impl<B> GammaReadParam<BigEndian> for B
impl<B> GammaReadParam<BigEndian> for B
source§impl<B> GammaReadParam<LittleEndian> for Bwhere
B: BitRead<LittleEndian>,
impl<B> GammaReadParam<LittleEndian> for Bwhere
B: BitRead<LittleEndian>,
fn read_gamma_param<const USE_TABLE: bool>( &mut self ) -> Result<u64, <B as BitRead<LittleEndian>>::Error>
fn skip_gamma_param<const USE_TABLE: bool>( &mut self ) -> Result<(), <B as BitRead<LittleEndian>>::Error>
source§impl<BO, B> MinimalBinaryRead<BO> for Bwhere
BO: Endianness,
B: BitRead<BO>,
impl<BO, B> MinimalBinaryRead<BO> for Bwhere
BO: Endianness,
B: BitRead<BO>,
source§impl<T> UpcastableFrom<T> for T
impl<T> UpcastableFrom<T> for T
source§fn upcast_from(value: T) -> T
fn upcast_from(value: T) -> T
Extend the current UnsignedInt to a possibly bigger size.