pub struct BitWriter<'a> { /* private fields */ }Expand description
A bounded bit-level writer for encoding packed binary data.
The writer never grows the buffer. Writes past the end return
BitError::WriteOverflow.
Implementations§
Source§impl<'a> BitWriter<'a>
impl<'a> BitWriter<'a>
Sourcepub const fn bits_written(&self) -> usize
pub const fn bits_written(&self) -> usize
Returns the number of bits written so far.
Sourcepub const fn bits_remaining(&self) -> usize
pub const fn bits_remaining(&self) -> usize
Returns the number of bits remaining in the buffer.
Sourcepub fn write_bits(&mut self, value: u64, bits: u8) -> BitResult<()>
pub fn write_bits(&mut self, value: u64, bits: u8) -> BitResult<()>
Writes up to 64 bits from an unsigned integer.
§Errors
Returns BitError::InvalidBitCount if bits > 64.
Returns BitError::ValueOutOfRange if value doesn’t fit in bits.
Sourcepub fn align_to_byte(&mut self) -> BitResult<()>
pub fn align_to_byte(&mut self) -> BitResult<()>
Pads with zero bits until the next byte boundary.
Sourcepub fn write_u8_aligned(&mut self, value: u8) -> BitResult<()>
pub fn write_u8_aligned(&mut self, value: u8) -> BitResult<()>
Writes a byte-aligned u8.
Sourcepub fn write_u16_aligned(&mut self, value: u16) -> BitResult<()>
pub fn write_u16_aligned(&mut self, value: u16) -> BitResult<()>
Writes a byte-aligned u16 (little-endian).
Sourcepub fn write_u32_aligned(&mut self, value: u32) -> BitResult<()>
pub fn write_u32_aligned(&mut self, value: u32) -> BitResult<()>
Writes a byte-aligned u32 (little-endian).
Sourcepub fn write_u64_aligned(&mut self, value: u64) -> BitResult<()>
pub fn write_u64_aligned(&mut self, value: u64) -> BitResult<()>
Writes a byte-aligned u64 (little-endian).
Sourcepub fn write_varu32(&mut self, value: u32) -> BitResult<()>
pub fn write_varu32(&mut self, value: u32) -> BitResult<()>
Writes a byte-aligned varint u32.
Sourcepub fn write_vars32(&mut self, value: i32) -> BitResult<()>
pub fn write_vars32(&mut self, value: i32) -> BitResult<()>
Writes a byte-aligned zigzag varint i32.
Trait Implementations§
Auto Trait Implementations§
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> !UnwindSafe 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