about summary refs log tree commit diff
path: root/unpacker/src/main.rs
blob: 36d8131165243d48e3abcfc0b6d52eb4723abe5e (plain)
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]);
	}
}