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