#[repr(C, align(16))]pub struct VMContext {}Expand description
The VM “context”, which is pointed to by the vmctx arg in the compiler.
This has information about globals, memories, tables, and other runtime
state associated with the current instance.
The struct here is empty, as the sizes of these fields are dynamic, and we can’t describe them in Rust’s type system. Sufficient memory is allocated at runtime.
TODO: We could move the globals into the vmctx allocation too.
Implementations§
Source§impl VMContext
impl VMContext
Sourcepub unsafe fn instance(&self) -> &Instance
pub unsafe fn instance(&self) -> &Instance
Return a mutable reference to the associated Instance.
§Safety
This is unsafe because it doesn’t work on just any VMContext, it must
be a VMContext allocated as part of an Instance.
Sourcepub unsafe fn host_state(&self) -> &dyn Any
pub unsafe fn host_state(&self) -> &dyn Any
Return a reference to the host state associated with this Instance.
§Safety
This is unsafe because it doesn’t work on just any VMContext, it must
be a VMContext allocated as part of an Instance.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for VMContext
impl RefUnwindSafe for VMContext
impl Send for VMContext
impl Sync for VMContext
impl Unpin for VMContext
impl UnwindSafe for VMContext
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
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>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.