compression_codecs/deflate/
decoder.rs

1use crate::{Decode, FlateDecoder};
2use compression_core::util::PartialBuffer;
3use std::io::Result;
4
5#[derive(Debug)]
6pub struct DeflateDecoder {
7    inner: FlateDecoder,
8}
9
10impl Default for DeflateDecoder {
11    fn default() -> Self {
12        Self {
13            inner: FlateDecoder::new(false),
14        }
15    }
16}
17
18impl DeflateDecoder {
19    pub fn new() -> Self {
20        Self::default()
21    }
22}
23
24impl Decode for DeflateDecoder {
25    fn reinit(&mut self) -> Result<()> {
26        self.inner.reinit()?;
27        Ok(())
28    }
29
30    fn decode(
31        &mut self,
32        input: &mut PartialBuffer<impl AsRef<[u8]>>,
33        output: &mut PartialBuffer<impl AsRef<[u8]> + AsMut<[u8]>>,
34    ) -> Result<bool> {
35        self.inner.decode(input, output)
36    }
37
38    fn flush(
39        &mut self,
40        output: &mut PartialBuffer<impl AsRef<[u8]> + AsMut<[u8]>>,
41    ) -> Result<bool> {
42        self.inner.flush(output)
43    }
44
45    fn finish(
46        &mut self,
47        output: &mut PartialBuffer<impl AsRef<[u8]> + AsMut<[u8]>>,
48    ) -> Result<bool> {
49        self.inner.finish(output)
50    }
51}