#![allow(
clippy::cast_lossless,
clippy::cast_possible_truncation,
clippy::cast_possible_wrap,
clippy::cast_sign_loss,
clippy::expect_used,
clippy::int_plus_one,
clippy::manual_slice_size_calculation,
clippy::many_single_char_names,
clippy::needless_range_loop,
clippy::panic,
clippy::unwrap_used
)]
mod column;
mod config;
mod decompress;
mod dict;
mod hash;
mod lpm;
mod offset;
mod parser;
mod trainer;
mod types;
#[cfg(test)]
mod test_corpus;
pub use column::Column;
pub use column::Parts;
pub use config::Bits;
pub use config::Config;
pub use config::DEFAULT_CONFIG;
pub use config::Error;
pub use config::Threshold;
pub use decompress::InvalidParts;
pub use decompress::decompress;
pub use decompress::decompress_into;
pub use decompress::decompress_into_unchecked;
pub use decompress::decompressed_len;
pub use dict::Dictionary;
pub use offset::Offset;
pub use parser::Parser;
pub use types::MAX_TOKEN_SIZE;
pub fn compress<O: Offset>(bytes: &[u8], offsets: &[O], cfg: Config) -> Result<Column<O>, Error> {
parser::validate_offsets(bytes, offsets)?;
Ok(Parser::train_unchecked(bytes, offsets, cfg).parse_unchecked(bytes, offsets))
}