#![forbid(unsafe_code)]
#![forbid(trivial_casts)]
#![forbid(trivial_numeric_casts)]
#![forbid(non_ascii_idents)]
#![forbid(redundant_lifetimes)]
#![forbid(single_use_lifetimes)]
#![forbid(macro_use_extern_crate)]
#![forbid(missing_unsafe_on_extern)]
#![forbid(unused_import_braces)]
#![warn(unused_crate_dependencies)]
#![warn(unused_extern_crates)]
#![warn(unused_lifetimes)]
#![warn(unused_macro_rules)]
mod bit_helper;
mod cabac_codec;
mod deflate;
mod estimator;
mod hash_algorithm;
mod hash_chain;
mod hash_chain_holder;
mod preflate_error;
mod preflate_input;
mod statistical_codec;
mod stream_processor;
mod token_predictor;
mod tree_predictor;
mod utils;
pub use estimator::preflate_parameter_estimator::TokenPredictorParameters;
pub use hash_algorithm::HashAlgorithm;
pub use preflate_error::ExitCode;
pub use preflate_error::{AddContext, PreflateError, Result, err_exit_code};
pub use preflate_input::{PlainText, PreflateInput};
pub use statistical_codec::{CodecCorrection, CountNonDefaultActions};
pub use stream_processor::{
PreflateStreamChunkResult, PreflateStreamProcessor, RecreateStreamProcessor,
preflate_whole_deflate_stream, recreate_whole_deflate_stream,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct PreflateConfig {
pub max_chain_length: u32,
pub plain_text_limit: usize,
pub verify_compression: bool,
}
impl Default for PreflateConfig {
fn default() -> Self {
Self {
max_chain_length: 4096,
plain_text_limit: 128 * 1024 * 1024,
verify_compression: true,
}
}
}
#[cfg(test)]
static INIT: std::sync::Once = std::sync::Once::new();
#[cfg(test)]
pub fn init_logging() {
INIT.call_once(|| {
let _ = env_logger::builder().is_test(true).try_init();
});
}