rpgcpf 0.1.0

GCPF archive compression and decompression library
Documentation
//! Gzip [`Decompressor`] impl

use std::io::Write;

use flate2::write::GzDecoder;

use super::{Decompressor, error::Error};

/// Gzip [`Decompressor`] impl
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct GzipDecompressor {}

impl Decompressor for GzipDecompressor {
    fn decompress(&self, data: &[u8]) -> Result<Vec<u8>, Error> {
        let mut decompressor = GzDecoder::new(Vec::new());
        decompressor.write_all(data)?;
        Ok(decompressor.finish()?)
    }
}