compression_codecs/deflate/
encoder.rs

1use crate::{flate::params::FlateEncoderParams, Encode, FlateEncoder};
2use compression_core::util::PartialBuffer;
3use std::io::Result;
4
5#[derive(Debug)]
6pub struct DeflateEncoder {
7    inner: FlateEncoder,
8}
9
10impl DeflateEncoder {
11    pub fn new(level: FlateEncoderParams) -> Self {
12        Self {
13            inner: FlateEncoder::new(level, false),
14        }
15    }
16
17    pub fn get_ref(&self) -> &FlateEncoder {
18        &self.inner
19    }
20}
21
22impl Encode for DeflateEncoder {
23    fn encode(
24        &mut self,
25        input: &mut PartialBuffer<impl AsRef<[u8]>>,
26        output: &mut PartialBuffer<impl AsRef<[u8]> + AsMut<[u8]>>,
27    ) -> Result<()> {
28        self.inner.encode(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}