#[repr(transparent)]pub struct ExternRef { /* private fields */ }
Expand description
An opaque reference to some data. This reference can be passed through Wasm.
Implementations
sourceimpl ExternRef
impl ExternRef
sourcepub fn new<T>(store: &mut impl AsStoreMut, value: T) -> Selfwhere
T: Any + Send + Sync + 'static + Sized,
pub fn new<T>(store: &mut impl AsStoreMut, value: T) -> Selfwhere
T: Any + Send + Sync + 'static + Sized,
Make a new extern reference
sourcepub fn downcast<'a, T>(&self, store: &'a impl AsStoreRef) -> Option<&'a T>where
T: Any + Send + Sync + 'static + Sized,
pub fn downcast<'a, T>(&self, store: &'a impl AsStoreRef) -> Option<&'a T>where
T: Any + Send + Sync + 'static + Sized,
Try to downcast to the given value.
sourcepub fn is_from_store(&self, store: &impl AsStoreRef) -> bool
pub fn is_from_store(&self, store: &impl AsStoreRef) -> bool
Checks whether this ExternRef
can be used with the given context.
Primitive (i32
, i64
, etc) and null funcref/externref values are not
tied to a context and can be freely shared between contexts.
Externref and funcref values are tied to a context and can only be used with that context.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for ExternRef
impl Send for ExternRef
impl Sync for ExternRef
impl Unpin for ExternRef
impl UnwindSafe for ExternRef
Blanket Implementations
impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> Upcastable for Twhere
T: 'static + Any + Send + Sync,
impl<T> Upcastable for Twhere
T: 'static + Any + Send + Sync,
sourcefn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
sourcefn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref