pub struct Builder<const BLOCK_SIZE_BITS: usize = 512, S = CloneBuildHasher<RandomDefaultHasher>> { /* private fields */ }
Expand description
A bloom filter builder.
This type can be used to construct an instance of BloomFilter
via the builder pattern.
Implementations§
Source§impl<const BLOCK_SIZE_BITS: usize, S: BuildHasher> Builder<BLOCK_SIZE_BITS, S>
impl<const BLOCK_SIZE_BITS: usize, S: BuildHasher> Builder<BLOCK_SIZE_BITS, S>
Sourcepub fn hasher<H: BuildHasher>(self, hasher: H) -> Builder<BLOCK_SIZE_BITS, H>
pub fn hasher<H: BuildHasher>(self, hasher: H) -> Builder<BLOCK_SIZE_BITS, H>
Sets the hasher for this builder. The later constructed BloomFilter
will use
this hasher when inserting and checking items.
§Examples
use b100m_filter::BloomFilter;
use ahash::RandomState;
let bloom = BloomFilter::builder(4).hasher(RandomState::default()).hashes(4);
Sourcepub fn hashes(self, num_hashes: u64) -> BloomFilter<BLOCK_SIZE_BITS, S>
pub fn hashes(self, num_hashes: u64) -> BloomFilter<BLOCK_SIZE_BITS, S>
“Consumes” this builder, using the provided num_hashes
to return an
empty BloomFilter
. For performance, the actual number of
hashes performed internally will be rounded to down to a power of 2,
depending on BLOCK_SIZE_BITS
.
§Examples
use b100m_filter::BloomFilter;
let bloom = BloomFilter::builder(4).hashes(4);
Sourcepub fn expected_items(
self,
expected_num_items: usize,
) -> BloomFilter<BLOCK_SIZE_BITS, S>
pub fn expected_items( self, expected_num_items: usize, ) -> BloomFilter<BLOCK_SIZE_BITS, S>
“Consumes” this builder, using the provided expected_num_items
to return an
empty BloomFilter
. More or less than expected_num_items
may be inserted into
BloomFilter
, but the number of hashes per item is intially calculated
to minimize false positive rate for exactly expected_num_items
.
§Examples
use b100m_filter::BloomFilter;
let bloom = BloomFilter::builder(4).expected_items(500);
Sourcepub fn items<I: ExactSizeIterator<Item = impl Hash>>(
self,
items: I,
) -> BloomFilter<BLOCK_SIZE_BITS, S>
pub fn items<I: ExactSizeIterator<Item = impl Hash>>( self, items: I, ) -> BloomFilter<BLOCK_SIZE_BITS, S>
“Consumes” this builder and constructs a BloomFilter
containing
all values in items
. The number of hashes per item is calculated
based on items.len()
to minimize false positive rate.
§Examples
use b100m_filter::BloomFilter;
let bloom = BloomFilter::builder(4).items([1, 2, 3].iter());