pub struct Builder<const BLOCK_SIZE_BITS: usize = 512, S = DefaultHasher> { /* private fields */ }Expand description
A bloom filter builder.
This type can be used to construct an instance of BloomFilter
via the builder pattern.
- First, the
Builderis initialized from some specification of underlying memory, either number of bits or raw vec data:
- Some optional modifications can be made, such as setting the seed (only for
DefaultHasher) or setting the hasher:
- Lastly, the builder is “consumed” and a
BloomFilteris built from a direct or indirect specification for number of hashes:
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: &u128) -> Self
pub fn seed(self, seed: &u128) -> Self
Sets the seed for this builder. The later constructed BloomFilter
will use this seed when hashing items.
§Examples
use fastbloom::BloomFilter;
let bloom = BloomFilter::builder(1024).seed(&1).hashes(4);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 fastbloom::BloomFilter;
use ahash::RandomState;
let bloom = BloomFilter::builder(1024).hasher(RandomState::default()).hashes(4);sourcepub fn hashes(self, num_hashes: u32) -> BloomFilter<BLOCK_SIZE_BITS, S>
pub fn hashes(self, num_hashes: u32) -> BloomFilter<BLOCK_SIZE_BITS, S>
“Consumes” this builder, using the provided num_hashes to return an
empty BloomFilter.
§Examples
use fastbloom::BloomFilter;
let bloom = BloomFilter::builder(1024).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. The number of hashes is optimized based on expected_num_items
to maximize bloom filter accuracy (minimize false positives chance on BloomFilter::contains).
More or less than expected_num_items may be inserted into BloomFilter.
§Examples
use fastbloom::BloomFilter;
let bloom = BloomFilter::builder(1024).expected_items(500);sourcepub fn items<I: IntoIterator<IntoIter = impl ExactSizeIterator<Item = impl Hash>>>(
self,
items: I
) -> BloomFilter<BLOCK_SIZE_BITS, S>
pub fn items<I: IntoIterator<IntoIter = impl ExactSizeIterator<Item = impl Hash>>>( self, items: I ) -> BloomFilter<BLOCK_SIZE_BITS, S>
“Consumes” this builder and constructs a BloomFilter containing
all values in items. Like Builder::expected_items, the number of hashes per item
is optimized based on items.len() to maximize bloom filter accuracy
(minimize false positives chance on BloomFilter::contains).
§Examples
use fastbloom::BloomFilter;
let bloom = BloomFilter::builder(1024).items([1, 2, 3]);