diff options
Diffstat (limited to 'crates/rsli/src/compress/deflate.rs')
| -rw-r--r-- | crates/rsli/src/compress/deflate.rs | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/crates/rsli/src/compress/deflate.rs b/crates/rsli/src/compress/deflate.rs index 154e0e3..6b8ea73 100644 --- a/crates/rsli/src/compress/deflate.rs +++ b/crates/rsli/src/compress/deflate.rs @@ -1,19 +1,14 @@ use crate::error::Error; use crate::Result; -use flate2::read::{DeflateDecoder, ZlibDecoder}; +use flate2::read::DeflateDecoder; use std::io::Read; -/// Decode Deflate or Zlib compressed data +/// 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); - if decoder.read_to_end(&mut out).is_ok() { - return Ok(out); - } - - out.clear(); - let mut zlib = ZlibDecoder::new(packed); - zlib.read_to_end(&mut out) + decoder + .read_to_end(&mut out) .map_err(|_| Error::DecompressionFailed("deflate"))?; Ok(out) } |
