pub struct WriteBits<W> { /* private fields */ }Expand description
Buffered bit-level writer that wraps an io::Write byte stream.
Implementations§
Source§impl<W> WriteBits<W>where
W: Write,
impl<W> WriteBits<W>where
W: Write,
Sourcepub fn write_bit(&mut self, bit: bool) -> Result<()>
pub fn write_bit(&mut self, bit: bool) -> Result<()>
Write one bit to the stream.
Returns Ok(()) if the bit was written successfully.
Returns Err if the writer returned an error on write or if the writer is exhausted.
Sourcepub fn write_bits(
&mut self,
buffer: &[u8],
bit_offset: usize,
bit_len: usize,
) -> Result<usize>
pub fn write_bits( &mut self, buffer: &[u8], bit_offset: usize, bit_len: usize, ) -> Result<usize>
Write bits from the slice.
bit_offset specifies the bit offset in the buffer.
bit_len specifies number of bits to write.
Returns number of bits written.
It would be the bit_len.
Unless writer is exhausted.
Sourcepub fn write_all_bits(
&mut self,
buffer: &[u8],
bit_offset: usize,
bit_len: usize,
) -> Result<()>
pub fn write_all_bits( &mut self, buffer: &[u8], bit_offset: usize, bit_len: usize, ) -> Result<()>
Writes exactly bit_len bits from buffer starting at bit_offset.
Unlike write_bits, this retries on partial writes
and returns an error if the writer cannot accept all bits.
Trait Implementations§
Source§impl<W> Write for WriteBits<W>where
W: Write,
impl<W> Write for WriteBits<W>where
W: Write,
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl<W> Freeze for WriteBits<W>where
W: Freeze,
impl<W> RefUnwindSafe for WriteBits<W>where
W: RefUnwindSafe,
impl<W> Send for WriteBits<W>where
W: Send,
impl<W> Sync for WriteBits<W>where
W: Sync,
impl<W> Unpin for WriteBits<W>where
W: Unpin,
impl<W> UnsafeUnpin for WriteBits<W>where
W: UnsafeUnpin,
impl<W> UnwindSafe for WriteBits<W>where
W: 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