Trait linera_witty::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.

Object Safety§

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,

§

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<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HCons<P, HCons<Q, HNil>>>>>>>>>>>>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HCons<P, HCons<Q, HNil>>>>>>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HCons<P, HCons<Q, HNil>>>>>>>>>>>>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HCons<P, HCons<Q, HNil>>>>>>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HCons<P, HNil>>>>>>>>>>>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HCons<P, HNil>>>>>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HCons<P, HNil>>>>>>>>>>>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HCons<P, HNil>>>>>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HNil>>>>>>>>>>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HNil>>>>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HNil>>>>>>>>>>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HCons<O, HNil>>>>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HNil>>>>>>>>>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HNil>>>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HNil>>>>>>>>>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HCons<N, HNil>>>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HNil>>>>>>>>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HNil>>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HNil>>>>>>>>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HCons<M, HNil>>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HNil>>>>>>>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HNil>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HNil>>>>>>>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HCons<L, HNil>>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HNil>>>>>>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HNil>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HNil>>>>>>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>

§

type Function = TypedFunction<<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HCons<K, HNil>>>>>>>>>>> as WasmerParameters>::ImportParameters, <Results as WasmerResults>::Results>

source§

impl<A, B, C, D, E, F, G, H, I, J, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HNil>>>>>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>

source§

impl<A, B, C, D, E, F, G, H, I, J, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HCons<J, HNil>>>>>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>

source§

impl<A, B, C, D, E, F, G, H, I, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HNil>>>>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>

source§

impl<A, B, C, D, E, F, G, H, I, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HCons<I, HNil>>>>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>

source§

impl<A, B, C, D, E, F, G, H, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HNil>>>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>

source§

impl<A, B, C, D, E, F, G, H, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HCons<H, HNil>>>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>

source§

impl<A, B, C, D, E, F, G, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HNil>>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>

source§

impl<A, B, C, D, E, F, G, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HCons<G, HNil>>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>

source§

impl<A, B, C, D, E, F, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HNil>>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, B: FlatType + FromToNativeWasmType + NativeWasmTypeInto, C: FlatType + FromToNativeWasmType + NativeWasmTypeInto, D: FlatType + FromToNativeWasmType + NativeWasmTypeInto, E: FlatType + FromToNativeWasmType + NativeWasmTypeInto, F: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<A, B, C, D, E, F, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HCons<F, HNil>>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, B: FlatType + FromToNativeWasmType + NativeWasmTypeInto, C: FlatType + FromToNativeWasmType + NativeWasmTypeInto, D: FlatType + FromToNativeWasmType + NativeWasmTypeInto, E: FlatType + FromToNativeWasmType + NativeWasmTypeInto, F: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<A, B, C, D, E, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HNil>>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, B: FlatType + FromToNativeWasmType + NativeWasmTypeInto, C: FlatType + FromToNativeWasmType + NativeWasmTypeInto, D: FlatType + FromToNativeWasmType + NativeWasmTypeInto, E: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<A, B, C, D, E, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HCons<E, HNil>>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, B: FlatType + FromToNativeWasmType + NativeWasmTypeInto, C: FlatType + FromToNativeWasmType + NativeWasmTypeInto, D: FlatType + FromToNativeWasmType + NativeWasmTypeInto, E: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<A, B, C, D, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HNil>>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, B: FlatType + FromToNativeWasmType + NativeWasmTypeInto, C: FlatType + FromToNativeWasmType + NativeWasmTypeInto, D: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<A, B, C, D, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HCons<D, HNil>>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, B: FlatType + FromToNativeWasmType + NativeWasmTypeInto, C: FlatType + FromToNativeWasmType + NativeWasmTypeInto, D: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<A, B, C, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HNil>>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, B: FlatType + FromToNativeWasmType + NativeWasmTypeInto, C: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<A, B, C, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HCons<C, HNil>>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, B: FlatType + FromToNativeWasmType + NativeWasmTypeInto, C: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<A, B, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HNil>>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, B: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<A, B, Results, UserData> InstanceWithFunction<HCons<A, HCons<B, HNil>>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, B: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<A, Results, UserData> InstanceWithFunction<HCons<A, HNil>, Results> for linera_witty::wasmer::EntrypointInstance<UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<A, Results, UserData> InstanceWithFunction<HCons<A, HNil>, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>
where A: FlatType + FromToNativeWasmType + NativeWasmTypeInto, Results: FlatLayout + WasmerResults, UserData: 'static,

source§

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

source§

impl<Parameters, Results, UserData> InstanceWithFunction<Parameters, Results> for linera_witty::wasmtime::EntrypointInstance<UserData>
where Parameters: FlatLayout + WasmtimeParameters, Results: FlatLayout + WasmtimeResults,

source§

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

§

type Function = ()

source§

impl<Parameters, Results, UserData> InstanceWithFunction<Parameters, Results> for linera_witty::wasmtime::ReentrantInstance<'_, UserData>
where Parameters: FlatLayout + WasmtimeParameters, Results: FlatLayout + WasmtimeResults,

source§

impl<Results, UserData> InstanceWithFunction<HNil, Results> for linera_witty::wasmer::EntrypointInstance<UserData>
where Results: FlatLayout + WasmerResults, UserData: 'static,

source§

impl<Results, UserData> InstanceWithFunction<HNil, Results> for linera_witty::wasmer::ReentrantInstance<'_, UserData>
where Results: FlatLayout + WasmerResults, UserData: 'static,