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