wasmtime_c_api

Struct wasmtime_val_t

Source
#[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

Source

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.

Source

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.

Source

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.

Source

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.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.