flate2/ffi/
mod.rs
1use crate::mem::{CompressError, DecompressError, FlushCompress, FlushDecompress, Status};
4use crate::Compression;
5
6pub trait Backend: Sync + Send {
11 fn total_in(&self) -> u64;
12 fn total_out(&self) -> u64;
13}
14
15pub trait InflateBackend: Backend {
16 fn make(zlib_header: bool, window_bits: u8) -> Self;
17 fn decompress(
18 &mut self,
19 input: &[u8],
20 output: &mut [u8],
21 flush: FlushDecompress,
22 ) -> Result<Status, DecompressError>;
23 fn reset(&mut self, zlib_header: bool);
24}
25
26pub trait DeflateBackend: Backend {
27 fn make(level: Compression, zlib_header: bool, window_bits: u8) -> Self;
28 fn compress(
29 &mut self,
30 input: &[u8],
31 output: &mut [u8],
32 flush: FlushCompress,
33 ) -> Result<Status, CompressError>;
34 fn reset(&mut self);
35}
36
37cfg_if::cfg_if! {
39 if #[cfg(any(feature = "miniz-sys", feature = "zlib", feature = "cloudflare_zlib"))] {
40 mod c;
41 pub use self::c::*;
42 } else {
43 mod rust;
44 pub use self::rust::*;
45 }
46}