use tsz_compress::prelude::*;
extern crate alloc;
#[derive(Debug, Copy, Clone, CompressV2, DecompressV2)]
pub struct TestRow {
t: i64,
a: i8,
b: i16,
#[tsz(delta = "i32")]
c: i32,
}
fn main() {
let row = TestRow {
t: 0,
a: 1,
b: 2,
c: 3,
};
let mut compressor = compress::TestRowCompressorImpl::new(128);
for _ in 0..10 {
compressor.compress(row);
}
let bytes = compressor.finish();
let mut decompressor = decompress::TestRowDecompressorImpl::new();
decompressor.decompress(&bytes).unwrap();
assert_eq!(decompressor.col_a(), vec![row.a; 10]);
decompressor.rows().iter().for_each(|x| {
assert_eq!(row.t, x.t);
assert_eq!(row.a, x.a);
assert_eq!(row.b, x.b);
assert_eq!(row.c, x.c);
});
}