Skip to main content

libflate/
lib.rs

1//! A Rust implementation of DEFLATE algorithm and related formats (ZLIB, GZIP).
2
3#![forbid(unsafe_code)]
4#![warn(missing_docs)]
5#![cfg_attr(not(feature = "std"), no_std)]
6
7pub use finish::Finish;
8extern crate alloc;
9
10macro_rules! invalid_data_error {
11    ($fmt:expr) => {
12        ::no_std_io2::io::Error::new(::no_std_io2::io::ErrorKind::InvalidData, $fmt)
13    };
14    ($fmt:expr, $($arg:tt)*) => {
15        {
16            #[cfg(feature = "std")]
17            {
18                ::no_std_io2::io::Error::new(
19                    ::no_std_io2::io::ErrorKind::InvalidData,
20                    ::alloc::format!($fmt, $($arg)*),
21                )
22            }
23            #[cfg(not(feature = "std"))]
24            {
25                ::no_std_io2::io::Error::new(::no_std_io2::io::ErrorKind::InvalidData, $fmt)
26            }
27        }
28    };
29}
30
31macro_rules! finish_try {
32    ($e:expr) => {
33        match $e.unwrap() {
34            (inner, None) => inner,
35            (inner, error) => return crate::finish::Finish::new(inner, error),
36        }
37    };
38}
39
40pub mod deflate;
41pub mod finish;
42pub mod gzip;
43pub mod lz77;
44pub mod non_blocking;
45pub mod zlib;
46
47mod bit;
48mod checksum;
49mod huffman;
50mod util;