pub trait Map<K: Ord + Eq + Hash, V>:
Default
+ Len
+ Extend<(K, V)>
+ FromIterator<(K, V)>
+ IntoIterator<Item = (K, V)> {
// Required methods
fn insert(&mut self, key: K, val: V) -> Result<(), InsertError<V>>;
fn remove<Q>(&mut self, key: &Q) -> Option<V>
where K: Borrow<Q>,
Q: Hash + Eq + Ord;
fn get<'a, Q: Hash + Eq + Ord>(&'a self, key: &Q) -> Option<&'a V>
where K: Borrow<Q> + 'a;
fn get_mut<'a, Q: Hash + Eq + Ord>(
&'a mut self,
key: &Q,
) -> Option<&'a mut V>
where K: Borrow<Q> + 'a;
fn iter(&self) -> Iter<'_, K, V> ⓘ;
fn iter_mut(&mut self) -> IterMut<'_, K, V> ⓘ;
// Provided method
fn has<Q: Hash + Eq + Ord>(&self, key: &Q) -> bool
where K: Borrow<Q> { ... }
}Expand description
An collection of key-value pairs
§Provided implementations
HashMap<K, V>tinyvec::ArrayVec<(K, V)>Vec<(K, V)>
§Requirements
Defaultfor creating the mapExtendfor adding new entries to the mapLenfor bound checks, empty checks, and accessing the lengthFromIteratorforcollecting into the mapIntoIteratorfor iterating and destroying the map
Required Methods§
Sourcefn insert(&mut self, key: K, val: V) -> Result<(), InsertError<V>>
fn insert(&mut self, key: K, val: V) -> Result<(), InsertError<V>>
See [HashMap.insert]
Sourcefn get<'a, Q: Hash + Eq + Ord>(&'a self, key: &Q) -> Option<&'a V>where
K: Borrow<Q> + 'a,
fn get<'a, Q: Hash + Eq + Ord>(&'a self, key: &Q) -> Option<&'a V>where
K: Borrow<Q> + 'a,
See [HashMap.get]
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl<A: Array<Item = (K, V)>, K: Eq + Hash + Ord, V> Map<K, V> for ArrayVec<A>
impl<A: Array<Item = (K, V)>, K: Eq + Hash + Ord, V> Map<K, V> for ArrayVec<A>
fn insert(&mut self, key: K, val: V) -> Result<(), InsertError<V>>
fn remove<Q: Hash + Eq + Ord>(&mut self, key: &Q) -> Option<V>where
K: Borrow<Q>,
fn get<'a, Q: Hash + Eq + Ord>(&'a self, key: &Q) -> Option<&'a V>where
K: Borrow<Q> + 'a,
fn get_mut<'a, Q: Hash + Eq + Ord>(&'a mut self, key: &Q) -> Option<&'a mut V>where
K: Borrow<Q> + 'a,
fn iter(&self) -> Iter<'_, K, V> ⓘ
fn iter_mut(&mut self) -> IterMut<'_, K, V> ⓘ
Source§impl<K, V> Map<K, V> for Vec<(K, V)>
Available on crate feature alloc only.
impl<K, V> Map<K, V> for Vec<(K, V)>
Available on crate feature
alloc only.fn insert(&mut self, key: K, val: V) -> Result<(), InsertError<V>>
fn remove<Q>(&mut self, key: &Q) -> Option<V>
fn get<'a, Q: Hash + Eq + Ord>(&'a self, key: &Q) -> Option<&'a V>where
K: Borrow<Q> + 'a,
fn get_mut<'a, Q: Hash + Eq + Ord>(&'a mut self, key: &Q) -> Option<&'a mut V>where
K: Borrow<Q> + 'a,
fn iter(&self) -> Iter<'_, K, V> ⓘ
fn iter_mut(&mut self) -> IterMut<'_, K, V> ⓘ
Source§impl<K: Eq + Hash + Ord, V> Map<K, V> for BTreeMap<K, V>
Available on crate feature alloc only.
impl<K: Eq + Hash + Ord, V> Map<K, V> for BTreeMap<K, V>
Available on crate feature
alloc only.fn insert(&mut self, key: K, val: V) -> Result<(), InsertError<V>>
fn remove<Q: Ord>(&mut self, key: &Q) -> Option<V>where
K: Borrow<Q>,
fn get<'a, Q: Hash + Eq + Ord>(&'a self, key: &Q) -> Option<&'a V>where
K: Borrow<Q> + 'a,
fn get_mut<'a, Q: Hash + Eq + Ord>(&'a mut self, key: &Q) -> Option<&'a mut V>where
K: Borrow<Q> + 'a,
fn iter(&self) -> Iter<'_, K, V> ⓘ
fn iter_mut(&mut self) -> IterMut<'_, K, V> ⓘ
Source§impl<K: Eq + Hash + Ord, V> Map<K, V> for HashMap<K, V>
Available on crate feature std only.
impl<K: Eq + Hash + Ord, V> Map<K, V> for HashMap<K, V>
Available on crate feature
std only.