1mod decode;
8mod decode_from_file;
9mod encode;
10mod encode_to_file;
11
12pub use decode::*;
13pub use decode_from_file::*;
14pub use encode::*;
15pub use encode_to_file::*;
16
17#[cfg(test)]
18mod tests {
19 #[test]
20 fn encode_decode() {
21 let data = vec![
22 (1u8, "one".as_bytes().to_vec()),
23 (2u8, "two".as_bytes().to_vec()),
24 (3u8, "three".as_bytes().to_vec()),
25 (1u8, "😀".as_bytes().to_vec()),
26 (5u8, vec![46u8, 134u8, 67u8, 9u8]),
27 ];
28 let original = data.clone();
29 let encoded = crate::encode(data).unwrap();
30 println!("{:?}", encoded);
31 assert_eq!(crate::decode(encoded).unwrap(), original);
32 }
33
34 #[test]
35 fn encode_decode_large() {
36 let mut vec = Vec::new();
37
38 for _ in 1..=u16::max_value() {
39 vec.push(5u8);
40 }
41
42 println!("{}", u16::max_value());
43
44 let data = vec![(4, vec)];
45 let original = data.clone();
46 let encoded = crate::encode(data).unwrap();
47 assert_eq!(crate::decode(encoded).unwrap(), original);
49
50 let mut vec = Vec::new();
51
52 for _ in 1..=(u32::from(u16::max_value()) + 5) {
53 vec.push(5u8);
54 }
55
56 println!("{}", u16::max_value());
57
58 let data = vec![(4, vec)];
59 let original = data.clone();
60 let encoded = crate::encode(data).unwrap();
61 assert_eq!(crate::decode(encoded).unwrap(), original);
63 }
64}