rpgcpf 0.1.1

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

use std::io::Write;

use flate2::write::DeflateDecoder;

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

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

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