Struct cranelift::prelude::codegen::entity::PrimaryMap [−]
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.
Methods
impl<K, V> PrimaryMap<K, V> where
K: EntityRef,
impl<K, V> PrimaryMap<K, V> where
K: EntityRef,
pub fn new() -> PrimaryMap<K, V>
pub fn new() -> PrimaryMap<K, V>
Create a new empty map.
pub fn is_valid(&self, k: K) -> bool
pub fn is_valid(&self, k: K) -> bool
Check if k
is a valid key in the map.
pub fn get(&self, k: K) -> Option<&V>
pub fn get(&self, k: K) -> Option<&V>
Get the element at k
if it exists.
pub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Is this map completely empty?
pub fn len(&self) -> usize
pub fn len(&self) -> usize
Get the total number of entity references created.
ⓘImportant traits for Keys<K>pub fn keys(&self) -> Keys<K>
pub fn keys(&self) -> Keys<K>
Iterate over all the keys in this map.
ⓘImportant traits for Iter<'a, T>pub fn values(&self) -> Iter<V>
pub fn values(&self) -> Iter<V>
Iterate over all the values in this map.
ⓘImportant traits for IterMut<'a, T>pub fn values_mut(&mut self) -> IterMut<V>
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>
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>
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)
pub fn clear(&mut self)
Remove all entries from this map.
pub fn next_key(&self) -> K
pub fn next_key(&self) -> K
Get the key that will be assigned to the next pushed value.
pub fn push(&mut self, v: V) -> K
pub fn push(&mut self, v: V) -> K
Append v
to the mapping, assigning a new key which is returned.
Trait Implementations
impl<K, V> IndexMut<K> for PrimaryMap<K, V> where
K: EntityRef,
impl<K, V> IndexMut<K> for PrimaryMap<K, V> where
K: EntityRef,
Mutable indexing into an PrimaryMap
.
ⓘImportant traits for &'a mut Rfn index_mut(&mut self, k: K) -> &mut V
fn index_mut(&mut self, k: K) -> &mut V
Performs the mutable indexing (container[index]
) operation.
impl<K, V> Index<K> for PrimaryMap<K, V> where
K: EntityRef,
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.
ⓘImportant traits for &'a mut Rfn index(&self, k: K) -> &V
fn index(&self, k: K) -> &V
Performs the indexing (container[index]
) operation.
impl<K, V> Clone for PrimaryMap<K, V> where
K: Clone + EntityRef,
V: Clone,
impl<K, V> Clone for PrimaryMap<K, V> where
K: Clone + EntityRef,
V: Clone,
fn clone(&self) -> PrimaryMap<K, V>
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> Debug for PrimaryMap<K, V> where
K: Debug + EntityRef,
V: Debug,
impl<K, V> Debug for PrimaryMap<K, V> where
K: Debug + EntityRef,
V: Debug,
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl<'a, K, V> IntoIterator for &'a PrimaryMap<K, V> where
K: EntityRef,
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) -> <&'a PrimaryMap<K, V> as IntoIterator>::IntoIter
fn into_iter(self) -> <&'a PrimaryMap<K, V> as IntoIterator>::IntoIter
Creates an iterator from a value. Read more
impl<'a, K, V> IntoIterator for &'a mut PrimaryMap<K, V> where
K: EntityRef,
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,