pub struct BitReader<T: Read> { /* private fields */ }Expand description
A wrapper for any type implementing io::Read that allows the reading of individual bits
§Example
use bit_manager::{BitReader, BitRead};
let mut reader = BitReader::new([0b01101110u8, 0b10100000u8].as_ref());
assert_eq!(reader.read_bit()?, false);
assert_eq!(reader.read_bit()?, true);
assert_eq!(reader.read_bit()?, true);
assert_eq!(reader.read_byte()?, 0b01110101);Implementations§
Source§impl<T: Read> BitReader<T>
impl<T: Read> BitReader<T>
Sourcepub fn new(reader: T) -> BitReader<T>
pub fn new(reader: T) -> BitReader<T>
Creates a new bit reader with the given reader. Uses Precision::Byte by default.
Sourcepub fn new_with_precision(reader: T, precision: Precision) -> BitReader<T>
pub fn new_with_precision(reader: T, precision: Precision) -> BitReader<T>
Creates a new bit reader with the given reader and precision.
Sourcepub fn is_aligned(&self) -> bool
pub fn is_aligned(&self) -> bool
Returns true if the internal buffer is aligned to a byte.
Trait Implementations§
Source§impl<T: Read> BitRead for BitReader<T>
impl<T: Read> BitRead for BitReader<T>
Source§fn read<T: BitStore>(&mut self) -> Result<T>
fn read<T: BitStore>(&mut self) -> Result<T>
Reads a value that implements
BitStore using the read_from function.Source§fn read_using<T, C>(&mut self, converter: &C) -> Result<T>where
C: BitConvert<T>,
fn read_using<T, C>(&mut self, converter: &C) -> Result<T>where
C: BitConvert<T>,
Reads a value using a converter that implements
BitConvert with the read_value_from function.Source§fn read_to_buffer<T, B>(&mut self, buffer: B) -> usize
fn read_to_buffer<T, B>(&mut self, buffer: B) -> usize
Reads values that implement
BitStore to a buffer. Returns the number of values read.Source§fn read_to_buffer_using<T, B, C>(&mut self, buffer: B, converter: &C) -> usize
fn read_to_buffer_using<T, B, C>(&mut self, buffer: B, converter: &C) -> usize
Reads values using a converter that implements
BitConvert to a buffer. Returns the number of values read.Auto Trait Implementations§
impl<T> Freeze for BitReader<T>where
T: Freeze,
impl<T> RefUnwindSafe for BitReader<T>where
T: RefUnwindSafe,
impl<T> Send for BitReader<T>where
T: Send,
impl<T> Sync for BitReader<T>where
T: Sync,
impl<T> Unpin for BitReader<T>where
T: Unpin,
impl<T> UnwindSafe for BitReader<T>where
T: UnwindSafe,
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