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
|
use unpacker::Unpacker;
fn main() {
// Four bits padding at the end.
let testdata = vec![
0b10000000, 0b00010000, 0b00000010, 0b00000000, 0b01000000, 0b00001000, 0b00000001,
0b00000000, 0b00100000, 0b00000100, 0b00000000, 0b10000000, 0b00010000,
];
let mut up = Unpacker {
out: vec![],
work: 0,
work_idx: 0,
};
let count = (10.0 as f32 * (10.0 / 8.0)).ceil() as usize;
for byte in testdata {
up.push(byte);
if count == up.out.len() {
break;
}
}
if count > up.out.len() {
up.finish();
}
for chnk in up.out.chunks(2) {
println!("{:02b} {:08b}", chnk[1], chnk[0]);
}
}
|