#[repr(C)]pub struct wasmtime_val_t {
pub kind: wasmtime_valkind_t,
pub of: wasmtime_val_union,
}Fields§
§kind: wasmtime_valkind_t§of: wasmtime_val_unionImplementations§
Source§impl wasmtime_val_t
impl wasmtime_val_t
Sourcepub fn from_val(
cx: &mut RootScope<impl AsContextMut>,
val: Val,
) -> wasmtime_val_t
pub fn from_val( cx: &mut RootScope<impl AsContextMut>, val: Val, ) -> wasmtime_val_t
Creates a new wasmtime_val_t from a wasmtime::Val.
Note that this requires a RootScope to be present to serve as proof
that val is not require to be rooted in the store itself which would
prevent GC. Callers should prefer this API where possible, creating a
temporary RootScope when needed.
Sourcepub fn from_val_unscoped(cx: impl AsContextMut, val: Val) -> wasmtime_val_t
pub fn from_val_unscoped(cx: impl AsContextMut, val: Val) -> wasmtime_val_t
Equivalent of wasmtime_val_t::from_val except that a RootScope
is not required.
This method should only be used when a RootScope is known to be
elsewhere on the stack. For example this is used when we call back out
to the embedder. In such a situation we know we previously entered with
some other call so the root scope is on the stack there.
Sourcepub unsafe fn to_val(&self, cx: &mut RootScope<impl AsContextMut>) -> Val
pub unsafe fn to_val(&self, cx: &mut RootScope<impl AsContextMut>) -> Val
Convert this wasmtime_val_t into a wasmtime::Val.
See wasmtime_val_t::from_val for notes on the RootScope
requirement here. Note that this is particularly meaningful for this
API as the Val returned may contain a Rooted<T> which requires a
RootScope if we don’t want the value to live for the entire lifetime
of the Store.
Sourcepub unsafe fn to_val_unscoped(&self, cx: impl AsContextMut) -> Val
pub unsafe fn to_val_unscoped(&self, cx: impl AsContextMut) -> Val
Equivalent of to_val except doesn’t require a RootScope.
See notes on wasmtime_val_t::from_val_unscoped for notes on when to
use this.