Expand description
use comprez_macro::Comprezable;
use comprez::{*, error::{CompressError, DecompressError}, comprezable::Comprezable};
#[derive(Comprezable, Debug)]
struct MyStruct {
[#maxNum=10000] //Compulsory for each field
num1: u32,
[#maxNum=888]
num2: u16,
[#maxNum=100] //from -100 to 100
num3: i8,
other_struct: OtherStruct,
vec1: Vec<u8>
}
#[derive(Comprezable, Debug)]
struct OtherStruct {
#[maxNum=1000000]
num4: u128,
}
fn main() {
let demo_data = Mystruct {
num1: 900,
num2: 100,
num3: 10,
other_struct: OtherStruct { num4: 200 },
vec1: vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
};
let compressed = demo_data.compress().unwrap()
let compressed_bytes = compressed.to_bytes();
let compressed_binaries = compressed.to_binaries();
let compressed = Compressed::from_bytes(compressed_bytes);
let compressed = Compressed::from_binaries(compressed_binaries);
let decompressed = Mystruct::decompressed(compressed).unwrap();
println!("{:?}", decompressed);
}Note
Since the compression of Vec
Modules
Trait for compressing structs
Enums
Wrapper for compression results and decompression arguments