AsyncGuestCall

Struct AsyncGuestCall 

Source
pub struct AsyncGuestCall<'c, D: Send + 'static, C> { /* private fields */ }
Expand description

A guest call to a WASM component function, which may be executed asynchronously.

It’s expected that the call_async method will be called to execute the function call in all cases, unless an error occurs during the setup of the call.

Implementations§

Source§

impl<'c, D: Send, C> AsyncGuestCall<'c, D, C>

Source

pub async fn call_async(self) -> Result<AsyncGuestResult<'c, D, C>, Error>

Calls the underlying WASM component function with the provided arguments and results.

Returns an error if the function call fails, or an AsyncGuestResult containing the results of the call.

Methods from Deref<Target = GuestCallData<'c, D, C>>§

Source

pub fn store(&self) -> StoreContext<'_, D>

Returns the WASM runtime store context.

Source

pub fn store_mut(&mut self) -> StoreContextMut<'_, D>

Returns a mutable reference to the WASM runtime store context.

Source

pub fn context(&mut self) -> &C

Returns the custom trampoline-specific context.

Source

pub fn interface(&self) -> &ForeignInterfacePath

Returns the fully-qualified WIT foreign interface path of the function being called.

Source

pub fn method(&self) -> &str

Returns the method name of the function being called.

Source

pub fn func_type(&self) -> &FuncType

Returns the type signature of the function being called.

Source

pub fn arguments(&self) -> &[Val]

Provides an immutable reference to the input arguments of the function call.

Trait Implementations§

Source§

impl<'c, D: Send, C> Deref for AsyncGuestCall<'c, D, C>

Source§

type Target = GuestCallData<'c, D, C>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<D: Send, C> DerefMut for AsyncGuestCall<'_, D, C>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<'c, D, C> Freeze for AsyncGuestCall<'c, D, C>

§

impl<'c, D, C> !RefUnwindSafe for AsyncGuestCall<'c, D, C>

§

impl<'c, D, C> Send for AsyncGuestCall<'c, D, C>
where C: Sync,

§

impl<'c, D, C> Sync for AsyncGuestCall<'c, D, C>
where C: Sync, D: Sync,

§

impl<'c, D, C> Unpin for AsyncGuestCall<'c, D, C>

§

impl<'c, D, C> !UnwindSafe for AsyncGuestCall<'c, D, C>

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.