Struct wasmtime_runtime::TypedGcRef
source · pub struct TypedGcRef<T> { /* private fields */ }
Expand description
A GC reference to a heap object of concrete type T
.
Create typed GC refs via VMGcRef::into_typed
and VMGcRef::as_typed
, as
well as via their unchecked equivalents VMGcRef::into_typed_unchecked
and
VMGcRef::as_typed_unchecked
.
Implementations§
source§impl<T> TypedGcRef<T>where
T: GcHeapObject,
impl<T> TypedGcRef<T>where
T: GcHeapObject,
sourcepub fn clone(&self, gc_store: &mut GcStore) -> Self
pub fn clone(&self, gc_store: &mut GcStore) -> Self
Clone this VMGcRef
, running any GC barriers as necessary.
sourcepub fn drop(self, gc_store: &mut GcStore)
pub fn drop(self, gc_store: &mut GcStore)
Explicitly drop this GC reference, running any GC barriers as necessary.
sourcepub fn unchecked_copy(&self) -> Self
pub fn unchecked_copy(&self) -> Self
Copy this GC reference without running the GC’s clone barriers.
Prefer calling clone(&mut GcStore)
instead! This is mostly an internal
escape hatch for collector implementations.
Failure to run GC barriers when they would otherwise be necessary can lead to leaks, panics, and wrong results. It cannot lead to memory unsafety, however.
source§impl<T> TypedGcRef<T>
impl<T> TypedGcRef<T>
sourcepub fn as_untyped(&self) -> &VMGcRef
pub fn as_untyped(&self) -> &VMGcRef
Get the untyped version of this GC reference.
Trait Implementations§
source§impl<T: Debug> Debug for TypedGcRef<T>
impl<T: Debug> Debug for TypedGcRef<T>
source§impl<T> From<TypedGcRef<T>> for VMGcRef
impl<T> From<TypedGcRef<T>> for VMGcRef
source§fn from(value: TypedGcRef<T>) -> Self
fn from(value: TypedGcRef<T>) -> Self
Converts to this type from the input type.
source§impl<T: Hash> Hash for TypedGcRef<T>
impl<T: Hash> Hash for TypedGcRef<T>
source§impl<T: PartialEq> PartialEq for TypedGcRef<T>
impl<T: PartialEq> PartialEq for TypedGcRef<T>
source§fn eq(&self, other: &TypedGcRef<T>) -> bool
fn eq(&self, other: &TypedGcRef<T>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl<T: Eq> Eq for TypedGcRef<T>
impl<T> StructuralPartialEq for TypedGcRef<T>
Auto Trait Implementations§
impl<T> Freeze for TypedGcRef<T>
impl<T> RefUnwindSafe for TypedGcRef<T>where
T: RefUnwindSafe,
impl<T> !Send for TypedGcRef<T>
impl<T> !Sync for TypedGcRef<T>
impl<T> Unpin for TypedGcRef<T>
impl<T> UnwindSafe for TypedGcRef<T>where
T: RefUnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.