[−][src]Struct dashmap::DashSet
DashSet is a thin wrapper around DashMap
using ()
as the value type. It uses
methods and types which are more convenient to work with on a set.
Implementations
impl<'a, K: 'a + Eq + Hash> DashSet<K, RandomState>
[src]
pub fn new() -> Self
[src]
Creates a new DashSet with a capacity of 0.
Examples
use dashmap::DashSet; let games = DashSet::new(); games.insert("Veloren");
pub fn with_capacity(capacity: usize) -> Self
[src]
Creates a new DashMap with a specified starting capacity.
Examples
use dashmap::DashSet; let numbers = DashSet::with_capacity(2); numbers.insert(2); numbers.insert(8);
impl<'a, K: 'a + Eq + Hash, S: BuildHasher + Clone> DashSet<K, S>
[src]
pub fn with_hasher(hasher: S) -> Self
[src]
Creates a new DashMap with a capacity of 0 and the provided hasher.
Examples
use dashmap::DashSet; use std::collections::hash_map::RandomState; let s = RandomState::new(); let games = DashSet::with_hasher(s); games.insert("Veloren");
pub fn with_capacity_and_hasher(capacity: usize, hasher: S) -> Self
[src]
Creates a new DashMap with a specified starting capacity and hasher.
Examples
use dashmap::DashSet; use std::collections::hash_map::RandomState; let s = RandomState::new(); let numbers = DashSet::with_capacity_and_hasher(2, s); numbers.insert(2); numbers.insert(8);
pub fn hash_usize<T: Hash>(&self, item: &T) -> usize
[src]
Hash a given item to produce a usize. Uses the provided or default HashBuilder.
pub fn shards(&self) -> &[RwLock<HashMap<K, SharedValue<()>, S>>]
[src]
Allows you to peek at the inner shards that store your data. You should probably not use this unless you know what you are doing.
Requires the raw-api
feature to be enabled.
Examples
use dashmap::DashSet; let set = DashSet::<()>::new(); println!("Amount of shards: {}", set.shards().len());
pub fn determine_map<Q: ?Sized>(&self, key: &Q) -> usize where
K: Borrow<Q>,
Q: Hash + Eq,
[src]
K: Borrow<Q>,
Q: Hash + Eq,
Finds which shard a certain key is stored in. You should probably not use this unless you know what you are doing. Note that shard selection is dependent on the default or provided HashBuilder.
Requires the raw-api
feature to be enabled.
Examples
use dashmap::DashSet; let set = DashSet::new(); set.insert("coca-cola"); println!("coca-cola is stored in shard: {}", set.determine_map("coca-cola"));
pub fn determine_shard(&self, hash: usize) -> usize
[src]
Finds which shard a certain hash is stored in.
Requires the raw-api
feature to be enabled.
Examples
use dashmap::DashSet; let set: DashSet<i32> = DashSet::new(); let key = "key"; let hash = set.hash_usize(&key); println!("hash is stored in shard: {}", set.determine_shard(hash));
pub fn insert(&self, key: K) -> bool
[src]
Inserts a key into the set. Returns true if the key was not already in the set.
Examples
use dashmap::DashSet; let set = DashSet::new(); set.insert("I am the key!");
pub fn remove<Q: ?Sized>(&self, key: &Q) -> Option<K> where
K: Borrow<Q>,
Q: Hash + Eq,
[src]
K: Borrow<Q>,
Q: Hash + Eq,
Removes an entry from the map, returning the key if it existed in the map.
Examples
use dashmap::DashSet; let soccer_team = DashSet::new(); soccer_team.insert("Jack"); assert_eq!(soccer_team.remove("Jack").unwrap(), "Jack");
pub fn remove_if<Q: ?Sized>(
&self,
key: &Q,
f: impl FnOnce(&K) -> bool
) -> Option<K> where
K: Borrow<Q>,
Q: Hash + Eq,
[src]
&self,
key: &Q,
f: impl FnOnce(&K) -> bool
) -> Option<K> where
K: Borrow<Q>,
Q: Hash + Eq,
Removes an entry from the set, returning the key if the entry existed and the provided conditional function returned true.
use dashmap::DashSet; let soccer_team = DashSet::new(); soccer_team.insert("Sam"); soccer_team.remove_if("Sam", |player| player.starts_with("Ja")); assert!(soccer_team.contains("Sam"));
use dashmap::DashSet; let soccer_team = DashSet::new(); soccer_team.insert("Sam"); soccer_team.remove_if("Jacob", |player| player.starts_with("Ja")); assert!(!soccer_team.contains("Jacob"));
pub fn iter(&'a self) -> Iter<'a, K, S, DashMap<K, (), S>>ⓘ
[src]
Creates an iterator over a DashMap yielding immutable references.
Examples
use dashmap::DashSet; let words = DashSet::new(); words.insert("hello"); assert_eq!(words.iter().count(), 1);
pub fn get<Q: ?Sized>(&'a self, key: &Q) -> Option<Ref<'a, K, S>> where
K: Borrow<Q>,
Q: Hash + Eq,
[src]
K: Borrow<Q>,
Q: Hash + Eq,
Get a reference to an entry in the set
Examples
use dashmap::DashSet; let youtubers = DashSet::new(); youtubers.insert("Bosnian Bill"); assert_eq!(*youtubers.get("Bosnian Bill").unwrap(), "Bosnian Bill");
pub fn shrink_to_fit(&self)
[src]
Remove excess capacity to reduce memory usage.
pub fn retain(&self, mut f: impl FnMut(&K) -> bool)
[src]
Retain elements that whose predicates return true and discard elements whose predicates return false.
Examples
use dashmap::DashSet; let people = DashSet::new(); people.insert("Albin"); people.insert("Jones"); people.insert("Charlie"); people.retain(|name| name.contains('i')); assert_eq!(people.len(), 2);
pub fn len(&self) -> usize
[src]
Fetches the total number of keys stored in the set.
Examples
use dashmap::DashSet; let people = DashSet::new(); people.insert("Albin"); people.insert("Jones"); people.insert("Charlie"); assert_eq!(people.len(), 3);
pub fn is_empty(&self) -> bool
[src]
Checks if the set is empty or not.
Examples
use dashmap::DashSet; let map = DashSet::<()>::new(); assert!(map.is_empty());
pub fn clear(&self)
[src]
Removes all keys in the set.
Examples
use dashmap::DashSet; let people = DashSet::new(); people.insert("Albin"); assert!(!people.is_empty()); people.clear(); assert!(people.is_empty());
pub fn capacity(&self) -> usize
[src]
Returns how many keys the set can store without reallocating.
pub fn contains<Q: ?Sized>(&self, key: &Q) -> bool where
K: Borrow<Q>,
Q: Hash + Eq,
[src]
K: Borrow<Q>,
Q: Hash + Eq,
Checks if the set contains a specific key.
Examples
use dashmap::DashSet; let people = DashSet::new(); people.insert("Dakota Cherries"); assert!(people.contains("Dakota Cherries"));
Trait Implementations
impl<K: Eq + Hash + Clone, S: Clone> Clone for DashSet<K, S>
[src]
pub fn clone(&self) -> Self
[src]
pub fn clone_from(&mut self, source: &Self)
[src]
impl<K: Eq + Hash + Debug, S: BuildHasher + Clone> Debug for DashSet<K, S>
[src]
impl<K, S> Default for DashSet<K, S> where
K: Eq + Hash,
S: Default + BuildHasher + Clone,
[src]
K: Eq + Hash,
S: Default + BuildHasher + Clone,
impl<'de, K> Deserialize<'de> for DashSet<K> where
K: Deserialize<'de> + Eq + Hash,
[src]
K: Deserialize<'de> + Eq + Hash,
pub fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
D: Deserializer<'de>,
[src]
D: Deserializer<'de>,
impl<K: Eq + Hash, S: BuildHasher + Clone> Extend<K> for DashSet<K, S>
[src]
pub fn extend<T: IntoIterator<Item = K>>(&mut self, iter: T)
[src]
pub fn extend_one(&mut self, item: A)
[src]
pub fn extend_reserve(&mut self, additional: usize)
[src]
impl<K: Eq + Hash> FromIterator<K> for DashSet<K, RandomState>
[src]
pub fn from_iter<I: IntoIterator<Item = K>>(iter: I) -> Self
[src]
impl<K, S> FromParallelIterator<K> for DashSet<K, S> where
K: Send + Sync + Eq + Hash,
S: Send + Sync + Clone + Default + BuildHasher,
[src]
K: Send + Sync + Eq + Hash,
S: Send + Sync + Clone + Default + BuildHasher,
pub fn from_par_iter<I>(par_iter: I) -> Self where
I: IntoParallelIterator<Item = K>,
[src]
I: IntoParallelIterator<Item = K>,
impl<'a, K: Eq + Hash, S: BuildHasher + Clone> IntoIterator for DashSet<K, S>
[src]
type Item = K
The type of the elements being iterated over.
type IntoIter = OwningIter<K, S>
Which kind of iterator are we turning this into?
pub fn into_iter(self) -> Self::IntoIter
[src]
impl<K, S> IntoParallelIterator for DashSet<K, S> where
K: Send + Eq + Hash,
S: Send + Clone + BuildHasher,
[src]
K: Send + Eq + Hash,
S: Send + Clone + BuildHasher,
type Iter = OwningIter<K, S>
The parallel iterator type that will be created.
type Item = K
The type of item that the parallel iterator will produce.
pub fn into_par_iter(self) -> Self::Iter
[src]
impl<'a, K, S> IntoParallelIterator for &'a DashSet<K, S> where
K: Send + Sync + Eq + Hash,
S: Send + Sync + Clone + BuildHasher,
[src]
K: Send + Sync + Eq + Hash,
S: Send + Sync + Clone + BuildHasher,
type Iter = Iter<'a, K, S>
The parallel iterator type that will be created.
type Item = RefMulti<'a, K, S>
The type of item that the parallel iterator will produce.
pub fn into_par_iter(self) -> Self::Iter
[src]
impl<K, S> ParallelExtend<K> for DashSet<K, S> where
K: Send + Sync + Eq + Hash,
S: Send + Sync + Clone + BuildHasher,
[src]
K: Send + Sync + Eq + Hash,
S: Send + Sync + Clone + BuildHasher,
pub fn par_extend<I>(&mut self, par_iter: I) where
I: IntoParallelIterator<Item = K>,
[src]
I: IntoParallelIterator<Item = K>,
impl<K, S> ParallelExtend<K> for &DashSet<K, S> where
K: Send + Sync + Eq + Hash,
S: Send + Sync + Clone + BuildHasher,
[src]
K: Send + Sync + Eq + Hash,
S: Send + Sync + Clone + BuildHasher,
pub fn par_extend<I>(&mut self, par_iter: I) where
I: IntoParallelIterator<Item = K>,
[src]
I: IntoParallelIterator<Item = K>,
impl<K> Serialize for DashSet<K> where
K: Serialize + Eq + Hash,
[src]
K: Serialize + Eq + Hash,
Auto Trait Implementations
impl<K, S = RandomState> !RefUnwindSafe for DashSet<K, S>
[src]
impl<K, S> Send for DashSet<K, S> where
K: Send,
S: Send,
[src]
K: Send,
S: Send,
impl<K, S> Sync for DashSet<K, S> where
K: Send + Sync,
S: Send + Sync,
[src]
K: Send + Sync,
S: Send + Sync,
impl<K, S> Unpin for DashSet<K, S> where
S: Unpin,
[src]
S: Unpin,
impl<K, S> UnwindSafe for DashSet<K, S> where
K: UnwindSafe,
S: UnwindSafe,
[src]
K: UnwindSafe,
S: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<'data, I> IntoParallelRefIterator<'data> for I where
I: 'data + ?Sized,
&'data I: IntoParallelIterator,
[src]
I: 'data + ?Sized,
&'data I: IntoParallelIterator,
type Iter = <&'data I as IntoParallelIterator>::Iter
The type of the parallel iterator that will be returned.
type Item = <&'data I as IntoParallelIterator>::Item
The type of item that the parallel iterator will produce.
This will typically be an &'data T
reference type. Read more
pub fn par_iter(&'data self) -> <I as IntoParallelRefIterator<'data>>::Iter
[src]
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,