bit_manager 0.5.0

A crate for reading and writing bits from various streams
Documentation

A crate for reading and writing bits from various streams

Reading

# extern crate bit_manager;
use bit_manager::{BitReader, BitRead};
# fn main() {
#     test().unwrap();
# }

# fn test() -> bit_manager::Result<()> {
let mut reader = BitReader::new([0b01101110u8, 0b10100000u8].as_ref());

assert_eq!(reader.read_bit()?, false);
assert_eq!(reader.read_bit()?, true);
assert_eq!(reader.read_bit()?, true);
assert_eq!(reader.read_byte()?, 0b01110101);
# Ok(()) }

Writing

# extern crate bit_manager;
use bit_manager::{BitWriter, BitWrite};
# fn main() {
#     test().unwrap();
# }

# fn test() -> bit_manager::Result<()> {
let mut writer = BitWriter::new(Vec::new());

writer.write_bit(false)?;
writer.write_bit(true)?;
writer.write_bit(true)?;
writer.write_byte(0b01110101)?;

assert_eq!(writer.into_inner()?, [0b01101110u8, 0b10100000u8]);
# Ok(()) }