pub(super) mod a_not_b;
pub(super) mod binomial_bounds;
pub(super) mod constants;
pub(super) mod hash_table;
pub(super) mod intersection;
pub(super) mod jaccard_similarity;
pub(super) mod union;
pub use self::jaccard_similarity::JaccardSimilarity;
pub(super) trait SketchEntry {
fn hash(&self) -> u64;
}
pub(super) trait KeySketch: Copy {
fn scalars(self) -> SketchScalars;
fn hashes(self) -> impl Iterator<Item = u64>;
}
pub(super) trait EntrySketch: KeySketch {
type Entry: SketchEntry;
fn entries(self) -> impl Iterator<Item = Self::Entry>;
}
#[derive(Clone, Copy, Debug)]
pub(super) struct SketchScalars {
pub seed_hash: u16,
pub theta: u64,
pub empty: bool,
pub ordered: bool,
pub num_retained: usize,
}