compression_codecs/zlib/
encoder.rs1use crate::{flate::params::FlateEncoderParams, EncodeV2, FlateEncoder};
2use compression_core::util::{PartialBuffer, WriteBuffer};
3use std::io::Result;
4
5#[derive(Debug)]
6pub struct ZlibEncoder {
7 inner: FlateEncoder,
8}
9
10impl ZlibEncoder {
11 pub fn new(level: FlateEncoderParams) -> Self {
12 Self {
13 inner: FlateEncoder::new(level, true),
14 }
15 }
16
17 pub fn get_ref(&self) -> &FlateEncoder {
18 &self.inner
19 }
20}
21
22impl EncodeV2 for ZlibEncoder {
23 fn encode(
24 &mut self,
25 input: &mut PartialBuffer<&[u8]>,
26 output: &mut WriteBuffer<'_>,
27 ) -> Result<()> {
28 self.inner.encode(input, output)
29 }
30
31 fn flush(&mut self, output: &mut WriteBuffer<'_>) -> Result<bool> {
32 self.inner.flush(output)
33 }
34
35 fn finish(&mut self, output: &mut WriteBuffer<'_>) -> Result<bool> {
36 self.inner.finish(output)
37 }
38}