use flate2::read::GzDecoder;
use flate2::write::GzEncoder;
use flate2::Compression;
use std::io::prelude::*;
pub struct Gzip {}
impl Gzip {
pub fn compress(data: Vec<u8>) -> Result<Vec<u8>, std::io::Error> {
let mut encoder = GzEncoder::new(Vec::new(), Compression::default());
encoder.write_all(&data).unwrap();
encoder.finish()
}
pub fn decompress(data: Vec<u8>) -> Result<Vec<u8>, std::io::Error> {
let mut decoder = GzDecoder::new(data.as_slice());
let mut s: Vec<u8> = Vec::new();
match decoder.read_to_end(&mut s) {
Ok(_) => Ok(s),
Err(e) => Err(e),
}
}
}