#![doc(html_root_url = "https://docs.rs/flate2/0.2")]
#![deny(missing_docs)]
#![deny(missing_debug_implementations)]
#![allow(trivial_numeric_casts)]
#![cfg_attr(test, deny(warnings))]
#[cfg(feature = "tokio")]
extern crate futures;
extern crate libc;
#[cfg(test)]
extern crate quickcheck;
#[cfg(test)]
extern crate rand;
#[cfg(feature = "tokio")]
#[macro_use]
extern crate tokio_io;
pub use gz::GzBuilder;
pub use gz::GzHeader;
pub use mem::{Compress, CompressError, DecompressError, Decompress, Status};
pub use mem::{FlushCompress, FlushDecompress};
pub use crc::{Crc, CrcReader};
mod bufreader;
mod crc;
mod deflate;
mod ffi;
mod gz;
mod zio;
mod mem;
mod zlib;
pub mod read {
pub use deflate::read::DeflateEncoder;
pub use deflate::read::DeflateDecoder;
pub use zlib::read::ZlibEncoder;
pub use zlib::read::ZlibDecoder;
pub use gz::read::GzEncoder;
pub use gz::read::GzDecoder;
pub use gz::read::MultiGzDecoder;
}
pub mod write {
pub use deflate::write::DeflateEncoder;
pub use deflate::write::DeflateDecoder;
pub use zlib::write::ZlibEncoder;
pub use zlib::write::ZlibDecoder;
pub use gz::write::GzEncoder;
}
pub mod bufread {
pub use deflate::bufread::DeflateEncoder;
pub use deflate::bufread::DeflateDecoder;
pub use zlib::bufread::ZlibEncoder;
pub use zlib::bufread::ZlibDecoder;
pub use gz::bufread::GzEncoder;
pub use gz::bufread::GzDecoder;
pub use gz::bufread::MultiGzDecoder;
}
fn _assert_send_sync() {
fn _assert_send_sync<T: Send + Sync>() {}
_assert_send_sync::<read::DeflateEncoder<&[u8]>>();
_assert_send_sync::<read::DeflateDecoder<&[u8]>>();
_assert_send_sync::<read::ZlibEncoder<&[u8]>>();
_assert_send_sync::<read::ZlibDecoder<&[u8]>>();
_assert_send_sync::<read::GzEncoder<&[u8]>>();
_assert_send_sync::<read::GzDecoder<&[u8]>>();
_assert_send_sync::<read::MultiGzDecoder<&[u8]>>();
_assert_send_sync::<write::DeflateEncoder<Vec<u8>>>();
_assert_send_sync::<write::DeflateDecoder<Vec<u8>>>();
_assert_send_sync::<write::ZlibEncoder<Vec<u8>>>();
_assert_send_sync::<write::ZlibDecoder<Vec<u8>>>();
_assert_send_sync::<write::GzEncoder<Vec<u8>>>();
}
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
pub struct Compression(u32);
impl Compression {
pub fn new(level: u32) -> Compression {
Compression(level)
}
pub fn none() -> Compression {
Compression(0)
}
pub fn fast() -> Compression {
Compression(1)
}
pub fn best() -> Compression {
Compression(9)
}
pub fn level(&self) -> u32 {
self.0
}
}
impl Default for Compression {
fn default() -> Compression {
Compression(6)
}
}