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