pub struct ReadBits<R> { /* private fields */ }Expand description
Buffered bit-level reader that wraps an io::Read byte stream.
Implementations§
Source§impl<R> ReadBits<R>where
R: Read,
impl<R> ReadBits<R>where
R: Read,
Sourcepub fn read_bit(&mut self) -> Result<bool>
pub fn read_bit(&mut self) -> Result<bool>
Read one bit from the stream.
Returns Ok(bit) if the bit was read successfully.
Returns Err if the reader returned an error on read or if the reader is exhausted.
Sourcepub fn read_bits(
&mut self,
buffer: &mut [u8],
bit_offset: usize,
bit_len: usize,
) -> Result<usize>
pub fn read_bits( &mut self, buffer: &mut [u8], bit_offset: usize, bit_len: usize, ) -> Result<usize>
Read bits into the buffer.
bit_offset specifies the bit offset in the buffer to read into.
All bits before bit_offset will be preserved.
bit_len specifies number of bits to read.
Returns number of bits read.
It would be the bit_len.
Unless reader is exhausted.
§Panics
The function will panic if buffer doesn’t fit bits in range bit_offset..bit_offset+bit_len.
This means that buffer.len() must be equal or greater than (bit_offset + bit_len + 7) / 8.
Function can also panic if internal reader panics on read.
Trait Implementations§
Source§impl<R> Read for ReadBits<R>where
R: Read,
impl<R> Read for ReadBits<R>where
R: Read,
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
1.36.0 · Source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read, except that it reads into a slice of buffers. Read moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector)1.0.0 · Source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Reads all bytes until EOF in this source, placing them into
buf. Read more1.0.0 · Source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until EOF in this source, appending them to
buf. Read more1.6.0 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Reads the exact number of bytes required to fill
buf. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf)Pull some bytes from this source into the specified buffer. Read more
Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf)Reads the exact number of bytes required to fill
cursor. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adapter for this instance of
Read. Read more1.0.0 · Source§fn chain<R>(self, next: R) -> Chain<Self, R>
fn chain<R>(self, next: R) -> Chain<Self, R>
Creates an adapter which will chain this stream with another. Read more
Auto Trait Implementations§
impl<R> Freeze for ReadBits<R>where
R: Freeze,
impl<R> RefUnwindSafe for ReadBits<R>where
R: RefUnwindSafe,
impl<R> Send for ReadBits<R>where
R: Send,
impl<R> Sync for ReadBits<R>where
R: Sync,
impl<R> Unpin for ReadBits<R>where
R: Unpin,
impl<R> UnsafeUnpin for ReadBits<R>where
R: UnsafeUnpin,
impl<R> UnwindSafe for ReadBits<R>where
R: 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