aboutsummaryrefslogtreecommitdiff
path: root/crates/rsli/src/compress/deflate.rs
blob: 6b8ea73a61be61a9517d5e9e4257717149d4cf71 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use crate::error::Error;
use crate::Result;
use flate2::read::DeflateDecoder;
use std::io::Read;

/// Decode raw Deflate (RFC 1951) payload.
pub fn decode_deflate(packed: &[u8]) -> Result<Vec<u8>> {
    let mut out = Vec::new();
    let mut decoder = DeflateDecoder::new(packed);
    decoder
        .read_to_end(&mut out)
        .map_err(|_| Error::DecompressionFailed("deflate"))?;
    Ok(out)
}