bloom_filters/
lib.rs

1use std::hash::Hash;
2
3mod buckets;
4mod classic;
5mod counting;
6mod hash;
7mod stable;
8
9pub use crate::classic::Filter as ClassicBloomFilter;
10pub use crate::counting::Filter as CountingBloomFilter;
11pub use crate::hash::{BuildHashKernels, DefaultBuildHashKernels, DefaultBuildHasher, DefaultHashKernels, HashKernels};
12pub use crate::stable::Filter as StableBloomFilter;
13
14pub trait BloomFilter {
15    fn insert<T: Hash>(&mut self, item: &T);
16    fn contains<T: Hash>(&self, item: &T) -> bool;
17    fn reset(&mut self);
18}
19
20pub trait RemovableBloomFilter {
21    fn remove<T: Hash>(&mut self, item: &T);
22}
23
24pub trait UpdatableBloomFilter {
25    /// Update filter internal buckets with `raw_data` via `BitOr` operation
26    fn update(&mut self, raw_data: &[u8]);
27}