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