use crate::error::Error;
use flate2::read::GzDecoder;
use std::io::{Cursor, Read, Write as _};
pub fn extract(bytes: &[u8]) -> Result<Vec<u8>, Error> {
let mut reader = Cursor::new(bytes);
let mut decoder = GzDecoder::new(&mut reader);
let mut writer = Vec::new();
decoder.read_to_end(&mut writer)?;
Ok(writer)
}
pub fn compress(bytes: &[u8]) -> Result<Vec<u8>, Error> {
let writer = Vec::new();
let mut encoder = flate2::write::GzEncoder::new(writer, flate2::Compression::default());
encoder.write_all(bytes)?;
Ok(encoder.finish()?)
}