pub type Dictionaries = AHashMap<i64, Box<dyn Array>>;
Expand description
how dictionaries are tracked in this crate
Aliased Type§
struct Dictionaries(/* private fields */);
Implementations
source§impl<K, V> AHashMap<K, V>
impl<K, V> AHashMap<K, V>
sourcepub fn new() -> AHashMap<K, V>
pub fn new() -> AHashMap<K, V>
This crates a hashmap using RandomState::new which obtains its keys from [RandomSource]. See the documentation in [RandomSource] for notes about key strength.
sourcepub fn with_capacity(capacity: usize) -> AHashMap<K, V>
pub fn with_capacity(capacity: usize) -> AHashMap<K, V>
This crates a hashmap with the specified capacity using RandomState::new. See the documentation in [RandomSource] for notes about key strength.
source§impl<K, V, S> AHashMap<K, V, S>where
S: BuildHasher,
impl<K, V, S> AHashMap<K, V, S>where
S: BuildHasher,
pub fn with_hasher(hash_builder: S) -> AHashMap<K, V, S>
pub fn with_capacity_and_hasher( capacity: usize, hash_builder: S ) -> AHashMap<K, V, S>
source§impl<K, V, S> AHashMap<K, V, S>
impl<K, V, S> AHashMap<K, V, S>
sourcepub fn get<Q>(&self, k: &Q) -> Option<&V>
pub fn get<Q>(&self, k: &Q) -> Option<&V>
Returns a reference to the value corresponding to the key.
The key may be any borrowed form of the map’s key type, but
Hash
and Eq
on the borrowed form must match those for
the key type.
§Examples
use std::collections::HashMap;
let mut map = HashMap::new();
map.insert(1, "a");
assert_eq!(map.get(&1), Some(&"a"));
assert_eq!(map.get(&2), None);
sourcepub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)>
pub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)>
Returns the key-value pair corresponding to the supplied key.
The supplied key may be any borrowed form of the map’s key type, but
Hash
and Eq
on the borrowed form must match those for
the key type.
§Examples
use std::collections::HashMap;
let mut map = HashMap::new();
map.insert(1, "a");
assert_eq!(map.get_key_value(&1), Some((&1, &"a")));
assert_eq!(map.get_key_value(&2), None);
sourcepub fn get_mut<Q>(&mut self, k: &Q) -> Option<&mut V>
pub fn get_mut<Q>(&mut self, k: &Q) -> Option<&mut V>
Returns a mutable reference to the value corresponding to the key.
The key may be any borrowed form of the map’s key type, but
Hash
and Eq
on the borrowed form must match those for
the key type.
§Examples
use std::collections::HashMap;
let mut map = HashMap::new();
map.insert(1, "a");
if let Some(x) = map.get_mut(&1) {
*x = "b";
}
assert_eq!(map[&1], "b");
sourcepub fn insert(&mut self, k: K, v: V) -> Option<V>
pub fn insert(&mut self, k: K, v: V) -> Option<V>
Inserts a key-value pair into the map.
If the map did not have this key present, None
is returned.
If the map did have this key present, the value is updated, and the old
value is returned. The key is not updated, though; this matters for
types that can be ==
without being identical. See the [module-level
documentation] for more.
§Examples
use std::collections::HashMap;
let mut map = HashMap::new();
assert_eq!(map.insert(37, "a"), None);
assert_eq!(map.is_empty(), false);
map.insert(37, "b");
assert_eq!(map.insert(37, "c"), Some("b"));
assert_eq!(map[&37], "c");
sourcepub fn into_keys(self) -> IntoKeys<K, V>
pub fn into_keys(self) -> IntoKeys<K, V>
Creates a consuming iterator visiting all the keys in arbitrary order.
The map cannot be used after calling this.
The iterator element type is K
.
§Examples
use std::collections::HashMap;
let map = HashMap::from([
("a", 1),
("b", 2),
("c", 3),
]);
let mut vec: Vec<&str> = map.into_keys().collect();
// The `IntoKeys` iterator produces keys in arbitrary order, so the
// keys must be sorted to test them against a sorted array.
vec.sort_unstable();
assert_eq!(vec, ["a", "b", "c"]);
§Performance
In the current implementation, iterating over keys takes O(capacity) time instead of O(len) because it internally visits empty buckets too.
sourcepub fn into_values(self) -> IntoValues<K, V>
pub fn into_values(self) -> IntoValues<K, V>
Creates a consuming iterator visiting all the values in arbitrary order.
The map cannot be used after calling this.
The iterator element type is V
.
§Examples
use std::collections::HashMap;
let map = HashMap::from([
("a", 1),
("b", 2),
("c", 3),
]);
let mut vec: Vec<i32> = map.into_values().collect();
// The `IntoValues` iterator produces values in arbitrary order, so
// the values must be sorted to test them against a sorted array.
vec.sort_unstable();
assert_eq!(vec, [1, 2, 3]);
§Performance
In the current implementation, iterating over values takes O(capacity) time instead of O(len) because it internally visits empty buckets too.
sourcepub fn remove<Q>(&mut self, k: &Q) -> Option<V>
pub fn remove<Q>(&mut self, k: &Q) -> Option<V>
Removes a key from the map, returning the value at the key if the key was previously in the map.
The key may be any borrowed form of the map’s key type, but
Hash
and Eq
on the borrowed form must match those for
the key type.
§Examples
use std::collections::HashMap;
let mut map = HashMap::new();
map.insert(1, "a");
assert_eq!(map.remove(&1), Some("a"));
assert_eq!(map.remove(&1), None);
Trait Implementations
source§impl<K, V> Default for AHashMap<K, V>
impl<K, V> Default for AHashMap<K, V>
NOTE: For safety this trait impl is only available available if either of the flags runtime-rng
(on by default) or
compile-time-rng
are enabled. This is to prevent weakly keyed maps from being accidentally created. Instead one of
constructors for RandomState must be used.
source§impl<'a, K, V, S> Extend<(&'a K, &'a V)> for AHashMap<K, V, S>
impl<'a, K, V, S> Extend<(&'a K, &'a V)> for AHashMap<K, V, S>
source§fn extend<T>(&mut self, iter: T)
fn extend<T>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<K, V, S> Extend<(K, V)> for AHashMap<K, V, S>
impl<K, V, S> Extend<(K, V)> for AHashMap<K, V, S>
source§fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = (K, V)>,
fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = (K, V)>,
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<K, V> FromIterator<(K, V)> for AHashMap<K, V>
impl<K, V> FromIterator<(K, V)> for AHashMap<K, V>
source§fn from_iter<T>(iter: T) -> AHashMap<K, V>where
T: IntoIterator<Item = (K, V)>,
fn from_iter<T>(iter: T) -> AHashMap<K, V>where
T: IntoIterator<Item = (K, V)>,
This crates a hashmap from the provided iterator using RandomState::new. See the documentation in [RandomSource] for notes about key strength.