Struct wasmtime_runtime::VMHostFuncContext
source · #[repr(C)]pub struct VMHostFuncContext { /* private fields */ }
Expand description
The VM*Context
for host functions.
Its magic
field must always be wasmtime_environ::VM_HOST_FUNC_MAGIC
, and
this is how you can determine whether a VM*Context
is a
VMHostFuncContext
versus a different kind of context.
Implementations§
source§impl VMHostFuncContext
impl VMHostFuncContext
sourcepub unsafe fn new(
host_func: NonNull<VMFunctionBody>,
signature: VMSharedSignatureIndex,
host_state: Box<dyn Any + Send + Sync>
) -> Box<VMHostFuncContext>
pub unsafe fn new( host_func: NonNull<VMFunctionBody>, signature: VMSharedSignatureIndex, host_state: Box<dyn Any + Send + Sync> ) -> Box<VMHostFuncContext>
Create the context for the given host function.
Safety
The host_func
must be a pointer to a host (not Wasm) function and it
must be Send
and Sync
.
sourcepub fn wasm_to_host_trampoline(&self) -> NonNull<VMCallerCheckedAnyfunc>
pub fn wasm_to_host_trampoline(&self) -> NonNull<VMCallerCheckedAnyfunc>
Get the Wasm-to-host trampoline for this host function context.
sourcepub fn host_state(&self) -> &(dyn Any + Send + Sync)
pub fn host_state(&self) -> &(dyn Any + Send + Sync)
Get the host state for this host function context.
source§impl VMHostFuncContext
impl VMHostFuncContext
sourcepub unsafe fn from_opaque(
opaque: *mut VMOpaqueContext
) -> *mut VMHostFuncContext
pub unsafe fn from_opaque( opaque: *mut VMOpaqueContext ) -> *mut VMHostFuncContext
Helper function to cast between context types using a debug assertion to protect against some mistakes.