pub struct BloomFilter { /* private fields */ }Expand description
Bloom filter over arbitrary byte keys.
Implementations§
Source§impl BloomFilter
impl BloomFilter
Sourcepub fn with_size_and_fp_rate(n: usize, fp: f64) -> Self
pub fn with_size_and_fp_rate(n: usize, fp: f64) -> Self
Construct a filter sized for n expected inserts at a
target false positive rate of fp.
fp must be strictly between 0 and 1; values outside
that range are clamped. n of zero produces the minimum
usable filter (64 bits, 1 hash) so callers do not need
to special-case empty corpora.
§Examples
use dyntext::bloom::BloomFilter;
let mut bf = BloomFilter::with_size_and_fp_rate(1000, 0.01);
bf.insert(b"hello");
assert!(bf.contains(b"hello"));Sourcepub fn hash_count(&self) -> u8
pub fn hash_count(&self) -> u8
Number of hash functions per insert / lookup.
Sourcepub fn insert(&mut self, key: &[u8])
pub fn insert(&mut self, key: &[u8])
Insert key into the filter.
After this call, Self::contains returns true for
key. Repeated inserts of the same key are idempotent.
Sourcepub fn contains(&self, key: &[u8]) -> bool
pub fn contains(&self, key: &[u8]) -> bool
Test whether key MAY be present.
Returns false only if key has provably never been
inserted (no false negatives). Returns true if every
hash bit is set, which can happen either because key
was inserted or because the bits were collectively set
by other keys (false positive).
Sourcepub fn false_positive_rate(&self, n_inserted: usize) -> f64
pub fn false_positive_rate(&self, n_inserted: usize) -> f64
Theoretical false positive rate after n_inserted
distinct insertions.
Formula: (1 - exp(-k * n / m))^k, where k is the
hash count and m is the bit count. Returns 0 for an
empty filter (no inserts) and approaches 1 for a
fully saturated filter.
Trait Implementations§
Source§impl Clone for BloomFilter
impl Clone for BloomFilter
Source§fn clone(&self) -> BloomFilter
fn clone(&self) -> BloomFilter
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more