Struct wasmer_types::entity::SecondaryMap
source · [−]Expand description
A mapping K -> V
for densely indexed entity references.
The SecondaryMap
data structure uses the dense index space to implement a map with a vector.
Unlike PrimaryMap
, an SecondaryMap
can’t be used to allocate entity references. It is used
to associate secondary information with entities.
The map does not track if an entry for a key has been inserted or not. Instead it behaves as if all keys have a default entry from the beginning.
Implementations
Shared SecondaryMap
implementation for all value types.
Create a new, empty map with the specified capacity.
The map will be able to hold exactly capacity
elements without reallocating.
Create a new empty map with a specified default value.
This constructor does not require V to implement Default.
Returns the number of elements the map can hold without reallocating.
Iterate over all the keys and values in this map.
Iterate over all the keys and values in this map, mutable edition.
Iterate over all the keys in this map.
Iterate over all the values in this map.
Iterate over all the values in this map, mutable edition.
Trait Implementations
impl<K, V> Archive for SecondaryMap<K, V> where
K: EntityRef,
V: Clone,
Vec<V>: Archive,
V: Archive,
PhantomData<K>: Archive,
impl<K, V> Archive for SecondaryMap<K, V> where
K: EntityRef,
V: Clone,
Vec<V>: Archive,
V: Archive,
PhantomData<K>: Archive,
Returns the “default value” for a type. Read more
impl<'de, K, V> Deserialize<'de> for SecondaryMap<K, V> where
K: EntityRef,
V: Clone + Deserialize<'de>,
impl<'de, K, V> Deserialize<'de> for SecondaryMap<K, V> where
K: EntityRef,
V: Clone + Deserialize<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl<__D: Fallible + ?Sized, K, V> Deserialize<SecondaryMap<K, V>, __D> for Archived<SecondaryMap<K, V>> where
K: EntityRef,
V: Clone,
Vec<V>: Archive,
Archived<Vec<V>>: Deserialize<Vec<V>, __D>,
V: Archive,
Archived<V>: Deserialize<V, __D>,
PhantomData<K>: Archive,
Archived<PhantomData<K>>: Deserialize<PhantomData<K>, __D>,
impl<__D: Fallible + ?Sized, K, V> Deserialize<SecondaryMap<K, V>, __D> for Archived<SecondaryMap<K, V>> where
K: EntityRef,
V: Clone,
Vec<V>: Archive,
Archived<Vec<V>>: Deserialize<Vec<V>, __D>,
V: Archive,
Archived<V>: Deserialize<V, __D>,
PhantomData<K>: Archive,
Archived<PhantomData<K>>: Deserialize<PhantomData<K>, __D>,
Deserializes using the given deserializer
Immutable indexing into an SecondaryMap
.
All keys are permitted. Untouched entries have the default value.
Mutable indexing into an SecondaryMap
.
The map grows as needed to accommodate new keys.
Returns the size of the referenced value in bytes. Read more
impl<K, V> PartialEq<SecondaryMap<K, V>> for SecondaryMap<K, V> where
K: EntityRef,
V: Clone + PartialEq,
impl<K, V> PartialEq<SecondaryMap<K, V>> for SecondaryMap<K, V> where
K: EntityRef,
V: Clone + PartialEq,
Auto Trait Implementations
impl<K, V> RefUnwindSafe for SecondaryMap<K, V> where
K: RefUnwindSafe,
V: RefUnwindSafe,
impl<K, V> Send for SecondaryMap<K, V> where
K: Send,
V: Send,
impl<K, V> Sync for SecondaryMap<K, V> where
K: Sync,
V: Sync,
impl<K, V> Unpin for SecondaryMap<K, V> where
K: Unpin,
V: Unpin,
impl<K, V> UnwindSafe for SecondaryMap<K, V> where
K: UnwindSafe,
V: UnwindSafe,
Blanket Implementations
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
pub fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
pub fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
The archived counterpart of this type. Unlike Archive
, it may be unsized. Read more
type MetadataResolver = ()
type MetadataResolver = ()
The resolver for the metadata of this type. Read more
pub unsafe fn resolve_metadata(
&self,
usize,
<T as ArchiveUnsized>::MetadataResolver,
*mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
)
pub unsafe fn resolve_metadata(
&self,
usize,
<T as ArchiveUnsized>::MetadataResolver,
*mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
)
Creates the archived version of the metadata for this value at the given position and writes it to the given output. Read more
Mutably borrows from an owned value. Read more
impl<F, W, T, D> Deserialize<With<T, W>, D> for F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
Compare self to key
and return true
if they are equal.