1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! bitbit provides functions to read and write streams one bit at a time.
//!
//! # Reading
//!
//! ```rust, ignore
//! let r = File::open("somefile")?;
//! let mut br = BitReader::new(r);
//!
//! let is_one = br.read_bit()?;
//!
//! let byte = br.read_byte()?;
//!
//! let num = br.read_bits(5)?;
//! ```
//! Using a buffered reader will improve performance:
//!
//! ```rust,ignore
//! let r = File::open("somefile")?;
//! let buff_reader = BufReader::new(r);
//! let mut br: BitReader<_, MSB> = BitReader::new(buff_reader);
//! ```
//!
//! # Writing
//!
//! ```rust, ignore
//! let w = File::create("somefile")?;
//! let mut bw = BitWriter::new(w);
//!
//! bw.write_bit(true)?;
//!
//! bw.write_byte(0x55)?;
//!
//! bw.write_bits(0x15, 5)?;
//!
//! bw.pad_to_byte();
//! ```
//! Using a buffered writer will improve performance
//!
//! ```rust, ignore
//! let w = File::create("somefile")?;
//! let mut buf_writer = BufWriter::new(w);
//! let mut bw = BitWriter::new(&mut buf_writer);
//! ...
//! buf_writer.flush();
//! ```

pub mod reader;
pub use reader::{BitReader, MSB, LSB};
pub mod writer;
pub use writer::BitWriter;