#[repr(transparent)]pub struct ExternRef(_);
Expand description
An opaque reference to some data. This reference can be passed through Wasm.
Implementations§
source§impl 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.
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
§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
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.