#![doc = include_str!("../README.md")]
#![no_std]
#![deny(trivial_casts, trivial_numeric_casts, rust_2018_idioms)]
#[cfg(feature = "std")]
extern crate std;
#[cfg(not(feature = "rustc-dep-of-std"))]
extern crate alloc;
#[cfg(feature = "std")]
pub(crate) const VERBOSE: bool = false;
macro_rules! vprintln {
($($x:expr),*) => {
#[cfg(feature = "std")]
if crate::VERBOSE {
std::println!($($x),*);
}
}
}
mod bit_io;
mod common;
pub mod decoding;
#[cfg(feature = "dict_builder")]
#[cfg_attr(docsrs, doc(cfg(feature = "dict_builder")))]
pub mod dictionary;
pub mod encoding;
mod histogram;
pub(crate) mod blocks;
#[cfg(feature = "fuzz_exports")]
pub mod fse;
#[cfg(feature = "fuzz_exports")]
pub mod huff0;
#[cfg(not(feature = "fuzz_exports"))]
pub(crate) mod fse;
#[cfg(not(feature = "fuzz_exports"))]
pub(crate) mod huff0;
#[cfg(feature = "std")]
pub mod io_std;
#[cfg(feature = "std")]
pub use io_std as io;
#[cfg(not(feature = "std"))]
pub mod io_nostd;
#[cfg(not(feature = "std"))]
pub use io_nostd as io;
mod tests;
#[cfg(feature = "bench_internals")]
#[doc(hidden)]
pub mod testing {
pub use crate::bit_io::BitReaderReversed;
#[inline(always)]
pub unsafe fn copy_bytes_overshooting_for_bench(
src: (*const u8, usize),
dst: (*mut u8, usize),
copy_at_least: usize,
) {
unsafe { crate::decoding::copy_bytes_overshooting_for_bench(src, dst, copy_at_least) };
}
}