use miniz_oxide::deflate::compress_to_vec;
pub(crate) fn compress(outv: &mut Vec<u8>, inp: &[u8], level: u8) {
let cmf = 120;
let flevel = 0;
let fdict = 0;
let mut cmfflg = 256 * cmf + fdict * 32 + flevel * 64;
let fcheck = 31 - cmfflg % 31;
cmfflg += fcheck;
outv.push((cmfflg >> 8) as u8);
outv.push((cmfflg & 255) as u8);
let deflated = compress_to_vec(inp, level);
let adler32_val = adler32(inp);
outv.extend_from_slice(&deflated);
outv.extend(adler32_val.to_be_bytes().iter());
}
fn adler32(data: &[u8]) -> u32 {
let mut adler = simd_adler32::Adler32::new();
adler.write(data);
adler.finish()
}