pub struct Builder<S = RandomState> { /* private fields */ }
Expand description
A builder for a map.
This builder allows you to specify an initial capacity and a hasher, and provides more flexibility in how that hasher can be constructed.
Implementations§
Source§impl Builder<RandomState>
impl Builder<RandomState>
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new builder with a RandomState
hasher, and an initial capacity of zero.
Source§impl<S> Builder<S>
impl<S> Builder<S>
Sourcepub fn with_capacity(self, capacity: usize) -> Self
pub fn with_capacity(self, capacity: usize) -> Self
Sets the initial capacity of the map. If not specified, the default is 0.
Sourcepub unsafe fn with_hasher<H>(self, hasher: H) -> Builder<H>where
H: Clone + BuildHasher,
pub unsafe fn with_hasher<H>(self, hasher: H) -> Builder<H>where
H: Clone + BuildHasher,
Sets the hasher for the underlying map. The provided hasher must implement Clone
due to
the implementation details of this crate.
§Safety
See crate::with_hasher
.
Sourcepub unsafe fn with_hasher_generator<H>(self, gen: fn() -> H) -> Builder<H>where
H: BuildHasher,
pub unsafe fn with_hasher_generator<H>(self, gen: fn() -> H) -> Builder<H>where
H: BuildHasher,
Sets the hasher for the underlying map. Similar to
with_hasher
, but instead of using a concrete hasher
builder, the provided function will be called as many times as necessary to initialize
the underlying map.
§Safety
See crate::with_hasher
.
Sourcepub fn build<K, V>(self) -> (WriteHandle<K, V, S>, ReadHandle<K, V, S>)where
K: TrustedHashEq,
S: BuildHasher,
pub fn build<K, V>(self) -> (WriteHandle<K, V, S>, ReadHandle<K, V, S>)where
K: TrustedHashEq,
S: BuildHasher,
Consumes the builder and returns a write handle and read handle to the map.
§Examples
// Use type inference to determine the key and value types
let (mut write, read) = Builder::new().build();
write.guard().insert(10u32, 20u32);
// Or specify them explicitly
let (write, read) = Builder::new().build::<String, String>();
Sourcepub unsafe fn build_assert_trusted<K, V>(
self,
) -> (WriteHandle<K, V, S>, ReadHandle<K, V, S>)
pub unsafe fn build_assert_trusted<K, V>( self, ) -> (WriteHandle<K, V, S>, ReadHandle<K, V, S>)
Consumes the builder and returns a write handle and read handle to the map.
§Safety
The implementations of Hash
and Eq
for the key type must be deterministic. See
TrustedHashEq
for details.