Struct b100m_filter::Builder
source · pub struct Builder<const BLOCK_SIZE_BITS: usize = 512> { /* 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> Builder<BLOCK_SIZE_BITS>
impl<const BLOCK_SIZE_BITS: usize> Builder<BLOCK_SIZE_BITS>
sourcepub fn seed(self, seed: &[u8; 16]) -> Self
pub fn seed(self, seed: &[u8; 16]) -> Self
Sets the seed for this builder. The later constructed BloomFilter
will use this seed when hashing items.
Examples
use b100m_filter::BloomFilter;
let bloom = BloomFilter::builder(4).seed(&[0u8; 16]).hashes(4);sourcepub fn hashes(self, num_hashes: u64) -> BloomFilter<BLOCK_SIZE_BITS>
pub fn hashes(self, num_hashes: u64) -> BloomFilter<BLOCK_SIZE_BITS>
“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>
pub fn expected_items( self, expected_num_items: usize ) -> BloomFilter<BLOCK_SIZE_BITS>
“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>
pub fn items<I: ExactSizeIterator<Item = impl Hash>>( self, items: I ) -> BloomFilter<BLOCK_SIZE_BITS>
“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());