pub struct BitReader<'a, R: Reader> { /* private fields */ }Expand description
A wrapper around a Reader that allows reading data bit-by-bit.
Implementations§
Source§impl<'a, R: Reader> BitReader<'a, R>
impl<'a, R: Reader> BitReader<'a, R>
Sourcepub const fn from_state(
reader: &'a mut R,
current_byte: u8,
bits_available: u8,
) -> Self
pub const fn from_state( reader: &'a mut R, current_byte: u8, bits_available: u8, ) -> Self
Creates a new BitReader with an existing state.
Sourcepub const fn get_state(&self) -> (u8, u8)
pub const fn get_state(&self) -> (u8, u8)
Returns the current state of the bit reader (current_byte, bits_available).
Sourcepub fn read_bits_lsb(&mut self, num_bits: u8) -> Result<u64, DecodeError>
pub fn read_bits_lsb(&mut self, num_bits: u8) -> Result<u64, DecodeError>
Reads num_bits from the stream, using LSB-first bit ordering.
§Errors
Returns DecodeError if the underlying reader fails to provide enough bytes.
Sourcepub fn read_bits_msb(&mut self, num_bits: u8) -> Result<u64, DecodeError>
pub fn read_bits_msb(&mut self, num_bits: u8) -> Result<u64, DecodeError>
Reads num_bits from the stream, using MSB-first bit ordering.
§Errors
Returns DecodeError if the underlying reader fails to provide enough bytes.
Sourcepub fn read_bits<C: Config>(
&mut self,
num_bits: u8,
config: &C,
) -> Result<u64, DecodeError>
pub fn read_bits<C: Config>( &mut self, num_bits: u8, config: &C, ) -> Result<u64, DecodeError>
Reads num_bits from the stream, using the bit ordering from the configuration.
§Errors
Returns DecodeError if the underlying reader fails to provide enough bytes.
Sourcepub const fn align_to_byte(&mut self)
pub const fn align_to_byte(&mut self)
Discards any remaining unread bits in the current byte, effectively returning to byte alignment.
Auto Trait Implementations§
impl<'a, R> !UnwindSafe for BitReader<'a, R>
impl<'a, R> Freeze for BitReader<'a, R>
impl<'a, R> RefUnwindSafe for BitReader<'a, R>where
R: RefUnwindSafe,
impl<'a, R> Send for BitReader<'a, R>where
R: Send,
impl<'a, R> Sync for BitReader<'a, R>where
R: Sync,
impl<'a, R> Unpin for BitReader<'a, R>
impl<'a, R> UnsafeUnpin for BitReader<'a, R>
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