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
sourceimpl 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.
sourceimpl<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>) where
K: Hash + Eq,
S: BuildHasher,
pub unsafe fn build_assert_trusted<K, V>(
self
) -> (WriteHandle<K, V, S>, ReadHandle<K, V, S>) where
K: Hash + Eq,
S: BuildHasher,
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.
Trait Implementations
sourceimpl Default for Builder<RandomState>
impl Default for Builder<RandomState>
impl<S: Copy> Copy for Builder<S>
Auto Trait Implementations
impl<S> RefUnwindSafe for Builder<S> where
S: RefUnwindSafe,
impl<S> Send for Builder<S> where
S: Send,
impl<S> Sync for Builder<S> where
S: Sync,
impl<S> Unpin for Builder<S> where
S: Unpin,
impl<S> UnwindSafe for Builder<S> where
S: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more