compression_codecs/deflate/
decoder.rs1use 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}