Struct cranelift_entity::PrimaryMap [−][src]
pub struct PrimaryMap<K, V> where
K: EntityRef, { /* fields omitted */ }A primary mapping K -> V allocating dense entity references.
The PrimaryMap data structure uses the dense index space to implement a map with a vector.
A primary map contains the main definition of an entity, and it can be used to allocate new
entity references with the push method.
There should only be a single PrimaryMap instance for a given EntityRef type, otherwise
conflicting references will be created. Using unknown keys for indexing will cause a panic.
Note that PrimaryMap doesn't implement Deref or DerefMut, which would allow
&PrimaryMap<K, V> to convert to &[V]. One of the main advantages of PrimaryMap is
that it only allows indexing with the distinct EntityRef key type, so converting to a
plain slice would make it easier to use incorrectly.
Methods
impl<K, V> PrimaryMap<K, V> where
K: EntityRef, [src]
impl<K, V> PrimaryMap<K, V> where
K: EntityRef, pub fn new() -> Self[src]
pub fn new() -> SelfCreate a new empty map.
pub fn is_valid(&self, k: K) -> bool[src]
pub fn is_valid(&self, k: K) -> boolCheck if k is a valid key in the map.
pub fn get(&self, k: K) -> Option<&V>[src]
pub fn get(&self, k: K) -> Option<&V>Get the element at k if it exists.
pub fn is_empty(&self) -> bool[src]
pub fn is_empty(&self) -> boolIs this map completely empty?
pub fn len(&self) -> usize[src]
pub fn len(&self) -> usizeGet the total number of entity references created.
ⓘImportant traits for Keys<K>pub fn keys(&self) -> Keys<K>[src]
pub fn keys(&self) -> Keys<K>Iterate over all the keys in this map.
pub fn values(&self) -> Iter<V>[src]
pub fn values(&self) -> Iter<V>Iterate over all the values in this map.
pub fn values_mut(&mut self) -> IterMut<V>[src]
pub fn values_mut(&mut self) -> IterMut<V>Iterate over all the values in this map, mutable edition.
ⓘImportant traits for Iter<'a, K, V>pub fn iter(&self) -> Iter<K, V>[src]
pub fn iter(&self) -> Iter<K, V>Iterate over all the keys and values in this map.
ⓘImportant traits for IterMut<'a, K, V>pub fn iter_mut(&mut self) -> IterMut<K, V>[src]
pub fn iter_mut(&mut self) -> IterMut<K, V>Iterate over all the keys and values in this map, mutable edition.
pub fn clear(&mut self)[src]
pub fn clear(&mut self)Remove all entries from this map.
pub fn next_key(&self) -> K[src]
pub fn next_key(&self) -> KGet the key that will be assigned to the next pushed value.
pub fn push(&mut self, v: V) -> K[src]
pub fn push(&mut self, v: V) -> KAppend v to the mapping, assigning a new key which is returned.
Trait Implementations
impl<K: Debug, V: Debug> Debug for PrimaryMap<K, V> where
K: EntityRef, [src]
impl<K: Debug, V: Debug> Debug for PrimaryMap<K, V> where
K: EntityRef, fn fmt(&self, f: &mut Formatter) -> Result[src]
fn fmt(&self, f: &mut Formatter) -> ResultFormats the value using the given formatter. Read more
impl<K: Clone, V: Clone> Clone for PrimaryMap<K, V> where
K: EntityRef, [src]
impl<K: Clone, V: Clone> Clone for PrimaryMap<K, V> where
K: EntityRef, fn clone(&self) -> PrimaryMap<K, V>[src]
fn clone(&self) -> PrimaryMap<K, V>Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl<K, V> Index<K> for PrimaryMap<K, V> where
K: EntityRef, [src]
impl<K, V> Index<K> for PrimaryMap<K, V> where
K: EntityRef, Immutable indexing into an PrimaryMap.
The indexed value must be in the map.
type Output = V
The returned type after indexing.
fn index(&self, k: K) -> &V[src]
fn index(&self, k: K) -> &VPerforms the indexing (container[index]) operation.
impl<K, V> IndexMut<K> for PrimaryMap<K, V> where
K: EntityRef, [src]
impl<K, V> IndexMut<K> for PrimaryMap<K, V> where
K: EntityRef, Mutable indexing into an PrimaryMap.
fn index_mut(&mut self, k: K) -> &mut V[src]
fn index_mut(&mut self, k: K) -> &mut VPerforms the mutable indexing (container[index]) operation.
impl<'a, K, V> IntoIterator for &'a PrimaryMap<K, V> where
K: EntityRef, [src]
impl<'a, K, V> IntoIterator for &'a PrimaryMap<K, V> where
K: EntityRef, type Item = (K, &'a V)
The type of the elements being iterated over.
type IntoIter = Iter<'a, K, V>
Which kind of iterator are we turning this into?
fn into_iter(self) -> Self::IntoIter[src]
fn into_iter(self) -> Self::IntoIterCreates an iterator from a value. Read more
impl<'a, K, V> IntoIterator for &'a mut PrimaryMap<K, V> where
K: EntityRef, [src]
impl<'a, K, V> IntoIterator for &'a mut PrimaryMap<K, V> where
K: EntityRef, Auto Trait Implementations
impl<K, V> Send for PrimaryMap<K, V> where
K: Send,
V: Send,
impl<K, V> Send for PrimaryMap<K, V> where
K: Send,
V: Send, impl<K, V> Sync for PrimaryMap<K, V> where
K: Sync,
V: Sync,
impl<K, V> Sync for PrimaryMap<K, V> where
K: Sync,
V: Sync,