rune::core::gc::root

Struct ObjectMap

Source
#[repr(transparent)]
pub(crate) struct ObjectMap<K, V>(UnsafeCell<IndexMap<K, V>>);
Expand description

A HashMap that can hold values past garbage collection.

This type is needed because Garbage Collection can move keys, which changes their hash value. ObjectMap will rehash the keys after collection.

Tuple Fields§

§0: UnsafeCell<IndexMap<K, V>>

Trait Implementations§

Source§

impl<K, V> Default for ObjectMap<K, V>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<K, V> Trace for ObjectMap<K, V>
where K: Trace + Hash + Eq, V: Trace,

Source§

fn trace(&self, state: &mut GcState)

Source§

impl<K: Debug, V: Debug> Debug for ObjectMap<K, V>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<K, V> !Freeze for ObjectMap<K, V>

§

impl<K, V> !RefUnwindSafe for ObjectMap<K, V>

§

impl<K, V> Send for ObjectMap<K, V>
where K: Send, V: Send,

§

impl<K, V> !Sync for ObjectMap<K, V>

§

impl<K, V> Unpin for ObjectMap<K, V>
where K: Unpin, V: Unpin,

§

impl<K, V> UnwindSafe for ObjectMap<K, V>
where K: UnwindSafe, V: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.