pub struct BitWriter<'a> { /* private fields */ }Expand description
Writes fields MSB-first into a borrowed mutable byte slice.
Each bit is explicitly set or cleared, so buf need not be zeroed first.
Implementations§
Source§impl<'a> BitWriter<'a>
impl<'a> BitWriter<'a>
Sourcepub fn capacity_bits(&self) -> usize
pub fn capacity_bits(&self) -> usize
Total bits the backing buffer can hold.
Sourcepub fn bits_written(&self) -> usize
pub fn bits_written(&self) -> usize
Bits written so far.
Sourcepub fn is_byte_aligned(&self) -> bool
pub fn is_byte_aligned(&self) -> bool
true if the cursor sits on a byte boundary.
Sourcepub fn write_bits(&mut self, value: u64, n: u32) -> Result<(), BitError>
pub fn write_bits(&mut self, value: u64, n: u32) -> Result<(), BitError>
Write the low n bits (0..=64) of value, MSB-first.
write_bits(_, 0) writes nothing.
§Errors
BitError::TooManyBits if n > 64; BitError::ValueTooWide if
value has bits set above bit n-1; BitError::OutOfBounds if the
buffer cannot hold n more bits.
Sourcepub fn align_to_byte(&mut self) -> Result<(), BitError>
pub fn align_to_byte(&mut self) -> Result<(), BitError>
Pad with zero bits up to the next byte boundary (no-op if aligned).
§Errors
BitError::OutOfBounds if the buffer cannot hold the padding.
Trait Implementations§
Auto Trait Implementations§
impl<'a> !UnwindSafe for BitWriter<'a>
impl<'a> Freeze for BitWriter<'a>
impl<'a> RefUnwindSafe for BitWriter<'a>
impl<'a> Send for BitWriter<'a>
impl<'a> Sync for BitWriter<'a>
impl<'a> Unpin for BitWriter<'a>
impl<'a> UnsafeUnpin for BitWriter<'a>
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