pub struct DashSet<K, S = RandomState> { /* private fields */ }
Expand description

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

Creates a new DashSet with a capacity of 0.

Examples
use dashmap::DashSet;

let games = DashSet::new();
games.insert("Veloren");

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);

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");

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);

Hash a given item to produce a usize. Uses the provided or default HashBuilder.

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());

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"));

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));

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!");

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");

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"));

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);

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");

Remove excess capacity to reduce memory usage.

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);

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);

Checks if the set is empty or not.

Examples
use dashmap::DashSet;

let map = DashSet::<()>::new();
assert!(map.is_empty());

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());

Returns how many keys the set can store without reallocating.

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Deserialize this value from the given Serde deserializer. Read more

Extends a collection with the contents of an iterator. Read more

🔬This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

🔬This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

Creates a value from an iterator. Read more

Creates an instance of the collection from the parallel iterator par_iter. Read more

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

The parallel iterator type that will be created.

The type of item that the parallel iterator will produce.

Converts self into a parallel iterator. Read more

The parallel iterator type that will be created.

The type of item that the parallel iterator will produce.

Converts self into a parallel iterator. Read more

Extends an instance of the collection with the elements drawn from the parallel iterator par_iter. Read more

Extends an instance of the collection with the elements drawn from the parallel iterator par_iter. Read more

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type of the parallel iterator that will be returned.

The type of item that the parallel iterator will produce. This will typically be an &'data T reference type. Read more

Converts self into a parallel iterator. Read more

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.