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