unpack/
unpack.rs

1use core::str;
2
3use meatpack::{MeatPackResult, Unpacker};
4
5fn main() {
6	let packed: [u8; 93] = [
7		255, 255, 251, 255, 255, 247, 255, 255, 250, 59, 32, 10, 255, 255, 251, 127, 77, 243, 32,
8		15, 80, 255, 32, 82, 195, 127, 77, 243, 32, 15, 81, 255, 32, 83, 195, 47, 77, 16, 239, 32,
9		4, 0, 255, 32, 89, 4, 0, 255, 32, 90, 2, 240, 32, 43, 5, 192, 47, 77, 48, 239, 32, 3, 240,
10		32, 63, 89, 0, 255, 32, 90, 4, 191, 32, 1, 192, 47, 77, 64, 255, 32, 80, 4, 0, 255, 32, 82,
11		33, 0, 255, 32, 84, 4, 0,
12	];
13
14	let mut unpacker = Unpacker::<64>::default();
15
16	for b in packed.iter() {
17		let res = unpacker.unpack(b);
18		match res {
19			Ok(MeatPackResult::WaitingForNextByte) => {
20				//println!("Waiting for next byte");
21			}
22			Ok(MeatPackResult::Line(line)) => {
23				let line = str::from_utf8(line).unwrap();
24				println!("{:?}", line);
25			}
26			Err(e) => {
27				println!("{:?}", e);
28				panic!();
29			}
30		}
31	}
32}