Struct elsa::index_map::FrozenIndexMap
source · pub struct FrozenIndexMap<K, V, S = RandomState> { /* private fields */ }Expand description
Append-only version of indexmap::IndexMap where
insertion does not require mutable access
Implementations§
source§impl<K: Eq + Hash, V: StableDeref, S: BuildHasher> FrozenIndexMap<K, V, S>
impl<K: Eq + Hash, V: StableDeref, S: BuildHasher> FrozenIndexMap<K, V, S>
pub fn insert(&self, k: K, v: V) -> &V::Target
pub fn insert_full(&self, k: K, v: V) -> (usize, &V::Target)
sourcepub fn get<Q>(&self, k: &Q) -> Option<&V::Target>where
K: Borrow<Q>,
Q: Hash + Eq + ?Sized,
pub fn get<Q>(&self, k: &Q) -> Option<&V::Target>where K: Borrow<Q>, Q: Hash + Eq + ?Sized,
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 elsa::FrozenIndexMap;
let map = FrozenIndexMap::new();
map.insert(1, Box::new("a"));
assert_eq!(map.get(&1), Some(&"a"));
assert_eq!(map.get(&2), None);pub fn get_index(&self, index: usize) -> Option<(&K::Target, &V::Target)>where K: StableDeref,
sourcepub fn map_get<Q, T, F>(&self, k: &Q, f: F) -> Option<T>where
K: Borrow<Q>,
Q: Hash + Eq + ?Sized,
F: FnOnce(&V) -> T,
pub fn map_get<Q, T, F>(&self, k: &Q, f: F) -> Option<T>where K: Borrow<Q>, Q: Hash + Eq + ?Sized, F: FnOnce(&V) -> T,
Applies a function to the owner of the value corresponding to the key (if any).
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 elsa::FrozenIndexMap;
let map = FrozenIndexMap::new();
map.insert(1, Box::new("a"));
assert_eq!(map.map_get(&1, Clone::clone), Some(Box::new("a")));
assert_eq!(map.map_get(&2, Clone::clone), None);source§impl<K, V, S> FrozenIndexMap<K, V, S>
impl<K, V, S> FrozenIndexMap<K, V, S>
sourcepub fn into_tuple_vec(self) -> Vec<(K, V)>
pub fn into_tuple_vec(self) -> Vec<(K, V)>
Collects the contents of this map into a vector of tuples.
The order of the entries is as if iterating an IndexMap.
Examples
use elsa::FrozenIndexMap;
let map = FrozenIndexMap::new();
map.insert(1, Box::new("a"));
map.insert(2, Box::new("b"));
let tuple_vec = map.into_tuple_vec();
assert_eq!(tuple_vec, vec![(1, Box::new("a")), (2, Box::new("b"))]);pub fn into_map(self) -> IndexMap<K, V, S>
Trait Implementations§
source§impl<K, V, S> From<IndexMap<K, V, S>> for FrozenIndexMap<K, V, S>
impl<K, V, S> From<IndexMap<K, V, S>> for FrozenIndexMap<K, V, S>
source§impl<K: Eq + Hash, V, S: BuildHasher + Default> FromIterator<(K, V)> for FrozenIndexMap<K, V, S>
impl<K: Eq + Hash, V, S: BuildHasher + Default> FromIterator<(K, V)> for FrozenIndexMap<K, V, S>
source§impl<Q, K, V, S> Index<&Q> for FrozenIndexMap<K, V, S>where
Q: Eq + Hash + ?Sized,
K: Eq + Hash + Borrow<Q>,
V: StableDeref,
S: BuildHasher,
impl<Q, K, V, S> Index<&Q> for FrozenIndexMap<K, V, S>where Q: Eq + Hash + ?Sized, K: Eq + Hash + Borrow<Q>, V: StableDeref, S: BuildHasher,
Auto Trait Implementations§
impl<K, V, S = RandomState> !RefUnwindSafe for FrozenIndexMap<K, V, S>
impl<K, V, S> Send for FrozenIndexMap<K, V, S>where K: Send, S: Send, V: Send,
impl<K, V, S = RandomState> !Sync for FrozenIndexMap<K, V, S>
impl<K, V, S> Unpin for FrozenIndexMap<K, V, S>where K: Unpin, S: Unpin, V: Unpin,
impl<K, V, S> UnwindSafe for FrozenIndexMap<K, V, S>where K: UnwindSafe, S: UnwindSafe, V: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more