pub trait WriteBits {
fn write_bits<R>(
&mut self,
f: &mut dyn Fn(&mut BitWriteAdapter<'_>) -> Result<R>
) -> Result<R>;
}
Required Methods§
sourcefn write_bits<R>(
&mut self,
f: &mut dyn Fn(&mut BitWriteAdapter<'_>) -> Result<R>
) -> Result<R>
fn write_bits<R>(
&mut self,
f: &mut dyn Fn(&mut BitWriteAdapter<'_>) -> Result<R>
) -> Result<R>
Creates a BitWrite
object and pass it to the given scope function f
.
let mut v = vec![];
{
use bitrw::WriteBits;
std::io::Cursor::new(&mut v).write_bits(&mut |w| {
use bitrw::BitWrite;
w.write(0_u8, 0)?; // 0
w.write(1_u16, 1)?; // 1
w.write(2_u32, 2)?; // 3
w.write(3_u64, 3)?; // 6
w.write(4_u128, 4)?; // 10
w.write(5_usize, 5)?; // 15
w.write(6_u8, 6)?; // 21
w.write(0xFFFF_u16, 12)?; // 33
Ok(())
});
}
assert_eq!(v, [0b00_011_10_1, 0b0_00101_01, 0b111_00011, 0b11111111, 0b1]);