#[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_union
Implementations§
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.