bitpack

```rust let mut buff = [0; 2];

// write { let mut bitpack = BitPack::<&mut [u8]>::new(&mut buff); bitpack.write(10, 4).unwrap(); bitpack.write(1021, 10).unwrap(); bitpack.write(3, 2).unwrap(); }

assert_eq!(buff, [218, 255]);

// read { let mut bitpack = BitPack::<&[u8]>::new(&buff); asserteq!(bitpack.read(4).unwrap(), 10); asserteq!(bitpack.read(10).unwrap(), 1021); assert_eq!(bitpack.read(2).unwrap(), 3); } ```

and, use_std

```rust let mut bitpackvec = BitPack::>::withcapacity(2); bitpackvec.write(10, 4).unwrap(); bitpackvec.write(1021, 10).unwrap(); bitpack_vec.write(3, 2).unwrap();

asserteq!(bitpackvec.as_slice(), [218, 255]);

let mut bitpack = BitPack::<&[u8]>::new(bitpackvec.asslice()); asserteq!(bitpack.read(4).unwrap(), 10); asserteq!(bitpack.read(10).unwrap(), 1021); assert_eq!(bitpack.read(2).unwrap(), 3); ```