UseBitWrite

Trait UseBitWrite 

Source
pub trait UseBitWrite: Sized + Write {
    // Provided method
    fn use_bit_write<R>(
        &mut self,
        f: &mut dyn Fn(&mut BitWrite<'_>) -> Result<R>,
    ) -> Result<R> { ... }
}

Provided Methods§

Source

fn use_bit_write<R>( &mut self, f: &mut dyn Fn(&mut BitWrite<'_>) -> Result<R>, ) -> Result<R>

Creates a BitWrite object and pass it to the given scope function f.

let mut v = vec![];
{
    use bitrw::UseBitWrite;
    std::io::Cursor::new(&mut v).use_bit_write(&mut |w| {
        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]);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T: Write> UseBitWrite for T