mod build;
mod consts;
#[cfg(feature = "data")]
mod data;
pub mod error;
mod pgm;
mod types;
pub use build::{build_lut, build_segments};
pub use consts::{LUT_BINS_MULTIPLIER, MAX_LUT_BINS, MIN_EPSILON, MIN_LUT_BINS};
#[cfg(feature = "data")]
pub use data::PgmData;
pub use error::{PgmError, Result};
pub use pgm::Pgm;
pub use types::{Key, PgmStats, Segment, ToKey};
#[cfg(feature = "data")]
pub type PgmIndex<K> = PgmData<K>;
#[cfg(feature = "key_to_u64")]
#[inline]
pub fn key_to_u64(key: &[u8]) -> u64 {
let len = key.len().min(8);
let mut buf = [0u8; 8];
buf[..len].copy_from_slice(&key[..len]);
u64::from_be_bytes(buf)
}