diff options
Diffstat (limited to 'crates/rsli/src/compress/deflate.rs')
| -rw-r--r-- | crates/rsli/src/compress/deflate.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/crates/rsli/src/compress/deflate.rs b/crates/rsli/src/compress/deflate.rs new file mode 100644 index 0000000..6b8ea73 --- /dev/null +++ b/crates/rsli/src/compress/deflate.rs @@ -0,0 +1,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) +} |
