Struct soroban_wasmi::TypedFunc
source · pub struct TypedFunc<Params, Results> { /* private fields */ }
Expand description
Implementations§
source§impl<Params, Results> TypedFunc<Params, Results>where
Params: WasmParams,
Results: WasmResults,
impl<Params, Results> TypedFunc<Params, Results>where
Params: WasmParams,
Results: WasmResults,
sourcepub fn call(
&self,
ctx: impl AsContextMut,
params: Params
) -> Result<Results, Trap>
pub fn call( &self, ctx: impl AsContextMut, params: Params ) -> Result<Results, Trap>
Calls this Wasm or host function with the specified parameters.
Returns either the results of the call, or a Trap
if one happened.
For more information, see the Func::typed
and Func::call
documentation.
§Panics
Panics if ctx
does not own this TypedFunc
.
§Errors
If the execution of the called Wasm function traps.
sourcepub fn call_resumable(
&self,
ctx: impl AsContextMut,
params: Params
) -> Result<TypedResumableCall<Results>, Trap>
pub fn call_resumable( &self, ctx: impl AsContextMut, params: Params ) -> Result<TypedResumableCall<Results>, Trap>
Calls this Wasm or host function with the specified parameters.
Returns a resumable handle to the function invocation upon enountering host errors with which it is possible to handle the error and continue the execution as if no error occured.
§Note
This is a non-standard WebAssembly API and might not be available
at other WebAssembly engines. Please be aware that depending on this
feature might mean a lock-in to wasmi
for users.
§Errors
If the function returned a Trap
originating from WebAssembly.
Trait Implementations§
impl<Params, Results> Copy for TypedFunc<Params, Results>
Auto Trait Implementations§
impl<Params, Results> RefUnwindSafe for TypedFunc<Params, Results>
impl<Params, Results> Send for TypedFunc<Params, Results>
impl<Params, Results> Sync for TypedFunc<Params, Results>
impl<Params, Results> Unpin for TypedFunc<Params, Results>
impl<Params, Results> UnwindSafe for TypedFunc<Params, Results>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.