pub mod basic;
pub(crate) mod chunk;
pub mod hybrid;
pub mod optimal;
pub mod partitioned;
pub use basic::{EliasFano, EliasFanoBatchCursor, EliasFanoCursor, EliasFanoIter};
pub use hybrid::{HybridPostingList, PostingEncoding};
pub use optimal::{
OptimalPartitionedEliasFano, OptimalPefBatchCursor, OptimalPefCursor, OptimalPefIter,
};
pub use partitioned::{
PartitionedEliasFano, PartitionedEliasFanoBatchCursor, PartitionedEliasFanoCursor,
PartitionedEliasFanoIter,
};
pub trait PostingList {
fn len(&self) -> usize;
fn is_empty(&self) -> bool {
self.len() == 0
}
fn get(&self, index: usize) -> Option<u64>;
fn next_geq(&self, target: u64) -> Option<(usize, u64)>;
fn size_bytes(&self) -> usize;
}
#[cfg(test)]
mod tests;