#[cfg(feature = "fixedbitset")]
pub mod bloomfilter;
pub mod compat;
#[cfg(all(feature = "rand", feature = "succinct"))]
pub mod cuckoofilter;
#[cfg(all(feature = "fixedbitset", feature = "succinct"))]
pub mod quotientfilter;
use std::fmt::Debug;
use std::hash::Hash;
pub trait Filter<T>
where
T: Hash + ?Sized,
{
type InsertErr: Debug;
fn clear(&mut self);
fn insert(&mut self, obj: &T) -> Result<bool, Self::InsertErr>;
fn union(&mut self, other: &Self) -> Result<(), Self::InsertErr>
where
Self: Sized;
fn is_empty(&self) -> bool;
fn len(&self) -> usize;
fn query(&self, obj: &T) -> bool;
}