#![cfg_attr(not(feature = "cpp"), forbid(unsafe_code))]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![doc = include_str!("../README.md")]
#[cfg(not(any(feature = "cpp", feature = "rust")))]
compile_error!("At least one of the features 'cpp' or 'rust' must be enabled");
mod error;
pub use error::{FastPForError, FastPForResult};
#[cfg(feature = "cpp")]
pub mod cpp;
#[cfg(feature = "rust")]
#[forbid(unsafe_code, reason = "Rust code must always be safe")]
pub(crate) mod rust;
mod codec;
#[cfg(feature = "cpp")]
pub use codec::BlockCodec64;
pub use codec::{AnyLenCodec, BlockCodec, slice_to_blocks};
pub(crate) mod helpers;
pub use bytemuck::Pod;
#[cfg(feature = "rust")]
pub use rust::{
CompositeCodec, FastPFor, FastPFor128, FastPFor256, FastPForBlock128, FastPForBlock256,
JustCopy, VariableByte,
};
#[cfg(test)]
extern crate self as fastpfor;
#[cfg(test)]
pub(crate) mod test_utils;