use std::hash::Hash;
mod bloom;
mod lut;
pub use self::bloom::*;
pub use lut::*;
pub trait Filter {
fn include<T: Hash>(&mut self, item: &T) -> bool;
fn contains<T: Hash>(&self, item: &T) -> bool;
}
pub trait CountingFilter: Filter {
fn counter<T: Hash>(&self, item: &T) -> Option<usize>;
}
pub trait BuildFilter {
type Filter: Filter;
fn build_filter(&self) -> Self::Filter;
}