pub struct BloomFilter<const N: usize, const K: usize = 2> { /* private fields */ }Expand description
A Bloom filter, parameterized by number of u64 segments N and number of hash functions K.
N should be based on how much you plan to insert into the filter.
N * 64 should be at least the number of items you plan to insert.
K if how little you can tolerate false positives.
2, the default, should work for most uses. Increase K to reduce false positives,
at a pretty large compute cost.
§Examples
use bevy_utils::BloomFilter;
let mut filter = BloomFilter::<1>::new();
filter.insert(&"hello");
assert!(filter.contains(&"hello"));
assert!(!filter.contains(&"world"));Implementations§
Source§impl<const N: usize, const K: usize> BloomFilter<N, K>
impl<const N: usize, const K: usize> BloomFilter<N, K>
Sourcepub fn check_insert(&mut self, item: &impl Hash) -> bool
pub fn check_insert(&mut self, item: &impl Hash) -> bool
Combined Self::contains and Self::insert.
Returns true if the value was already in the filter.
Adds the value to the filter if it was not already present.
Trait Implementations§
Source§impl<const N: usize, const K: usize> Clone for BloomFilter<N, K>
impl<const N: usize, const K: usize> Clone for BloomFilter<N, K>
Source§fn clone(&self) -> BloomFilter<N, K>
fn clone(&self) -> BloomFilter<N, K>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl<const N: usize, const K: usize> Copy for BloomFilter<N, K>
Auto Trait Implementations§
impl<const N: usize, const K: usize> Freeze for BloomFilter<N, K>
impl<const N: usize, const K: usize> RefUnwindSafe for BloomFilter<N, K>
impl<const N: usize, const K: usize> Send for BloomFilter<N, K>
impl<const N: usize, const K: usize> Sync for BloomFilter<N, K>
impl<const N: usize, const K: usize> Unpin for BloomFilter<N, K>
impl<const N: usize, const K: usize> UnsafeUnpin for BloomFilter<N, K>
impl<const N: usize, const K: usize> UnwindSafe for BloomFilter<N, K>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more