#![deny(missing_docs)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Compression(i32);
impl Compression {
pub const NONE: Compression = Compression(0);
pub const BEST_SPEED: Compression = Compression(1);
pub const DEFAULT: Compression = Compression(6);
pub const BEST: Compression = Compression(9);
pub fn new(level: i32) -> Option<Self> {
(0..=9).contains(&level).then_some(Compression(level))
}
pub fn level(&self) -> i32 {
self.0
}
}
impl Default for Compression {
fn default() -> Self {
Compression::DEFAULT
}
}
pub struct Decompress(zlib_rs::Inflate);
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Status {
Ok,
BufError,
StreamEnd,
}
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
#[non_exhaustive]
pub enum FlushDecompress {
None = 0,
Sync = 2,
Finish = 4,
}
#[derive(Default)]
pub struct Inflate {
pub state: Decompress,
}
pub mod stream;
pub mod inflate;
mod decompress;
pub use decompress::DecompressError;