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