Trait InstanceWithFunction

Source
pub trait InstanceWithFunction<Parameters, Results>: Instance
where Parameters: FlatLayout, Results: FlatLayout,
{ type Function; // Required methods fn function_from_export( &mut self, export: <Self::Runtime as Runtime>::Export, ) -> Result<Option<Self::Function>, RuntimeError>; fn call( &mut self, function: &Self::Function, parameters: Parameters, ) -> Result<Results, RuntimeError>; // Provided method fn load_function( &mut self, name: &str, ) -> Result<Self::Function, RuntimeError> { ... } }
Expand description

How a runtime supports a function signature.

Required Associated Types§

Source

type Function

The runtime-specific type to represent the function.

Required Methods§

Source

fn function_from_export( &mut self, export: <Self::Runtime as Runtime>::Export, ) -> Result<Option<Self::Function>, RuntimeError>

Converts an export into a function, if it is one.

Source

fn call( &mut self, function: &Self::Function, parameters: Parameters, ) -> Result<Results, RuntimeError>

Calls the function from this instance using the specified parameters.

Provided Methods§

Source

fn load_function(&mut self, name: &str) -> Result<Self::Function, RuntimeError>

Loads a function from the guest Wasm instance.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<Parameters, Results, I> InstanceWithFunction<Parameters, Results> for &mut I
where I: InstanceWithFunction<Parameters, Results>, Parameters: FlatLayout, Results: FlatLayout,

Source§

type Function = <I as InstanceWithFunction<Parameters, Results>>::Function

Source§

fn function_from_export( &mut self, export: <Self::Runtime as Runtime>::Export, ) -> Result<Option<Self::Function>, RuntimeError>

Source§

fn call( &mut self, function: &Self::Function, parameters: Parameters, ) -> Result<Results, RuntimeError>

Implementors§

Source§

impl<Parameters, Results, UserData> InstanceWithFunction<Parameters, Results> for StubInstance<UserData>
where Parameters: FlatLayout + 'static, Results: FlatLayout + 'static,