A crate for reading and writing bits from various streams
Writing
extern crate bit_manager;
use bit_manager::BitWriter;
# fn main() {
let mut writer = BitWriter::new(Vec::new());
writer.write_bits(&[false, true, false, false, true, false, false, false]).unwrap();
writer.write(b'i').unwrap();
assert_eq!(writer.into_inner().unwrap(), b"Hi");
# }
Reading
extern crate bit_manager;
use bit_manager::BitReader;
# fn main() {
let mut reader = BitReader::new(&b"Hi"[..]);
let mut h = [false; 8];
reader.read_bits(&mut h).unwrap();
assert_eq!(h, [false, true, false, false, true, false, false, false]);
assert_eq!(reader.read_byte().unwrap(), b'i');
# }