pub struct DashTable<T> { /* private fields */ }Expand description
A concurrent raw hash table with items of type T.
Implementations§
Source§impl<T> DashTable<T>
impl<T> DashTable<T>
Sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Creates a new concurrent raw hash table, pre-allocating capacity for approximately the given number of items
Sourcepub fn entry<'a>(
&'a self,
hash: u64,
eq: impl FnMut(&T) -> bool,
hasher: impl Fn(&T) -> u64,
) -> Entry<'a, T>
pub fn entry<'a>( &'a self, hash: u64, eq: impl FnMut(&T) -> bool, hasher: impl Fn(&T) -> u64, ) -> Entry<'a, T>
Retrieves an entry for the given hash value.
See also:
entry_mut(), which is more efficient if you hold a mutable reference to thisDashTable, as it avoids acquiring locks,find(), which is more efficient if you don’t need to modify the entry, as it only acquires a read lock.
Sourcepub fn entry_mut<'a>(
&'a mut self,
hash: u64,
eq: impl FnMut(&T) -> bool,
hasher: impl Fn(&T) -> u64,
) -> MutEntry<'a, T>
pub fn entry_mut<'a>( &'a mut self, hash: u64, eq: impl FnMut(&T) -> bool, hasher: impl Fn(&T) -> u64, ) -> MutEntry<'a, T>
Sourcepub fn find<'a>(
&'a self,
hash: u64,
eq: impl FnMut(&T) -> bool,
) -> Option<Ref<'a, T>>
pub fn find<'a>( &'a self, hash: u64, eq: impl FnMut(&T) -> bool, ) -> Option<Ref<'a, T>>
Returns a reference to a value if one matches the given hash.
This is more efficient than using entry() as this only
uses a read lock.
Sourcepub fn insert_unique<'a>(
&'a self,
hash: u64,
value: T,
hasher: impl Fn(&T) -> u64,
) -> OccupiedEntry<'a, T>
pub fn insert_unique<'a>( &'a self, hash: u64, value: T, hasher: impl Fn(&T) -> u64, ) -> OccupiedEntry<'a, T>
Unconditionally inserts the given value for the given hash, without checking whether an equivalent element already exists in the table.
See also insert_unique_mut, which is more
efficient if you hold a mutable reference to this DashTable as
it avoids acquiring locks.
Sourcepub fn insert_unique_mut<'a>(
&'a mut self,
hash: u64,
value: T,
hasher: impl Fn(&T) -> u64,
) -> MutOccupiedEntry<'a, T>
pub fn insert_unique_mut<'a>( &'a mut self, hash: u64, value: T, hasher: impl Fn(&T) -> u64, ) -> MutOccupiedEntry<'a, T>
Unconditionally inserts the given value for the given hash, without checking whether an equivalent element already exists in the table.
Contrary to insert_unique(), no lock is held
internally because this function already takes an exclusive mutable
reference to this DashTable.