pub trait ModuleInstanceInterface {
// Required methods
fn execute_index(
&self,
index: u32,
params: ExecutionParams<'_>,
) -> Result<Option<RuntimeValue>, Error>;
fn execute_export(
&self,
name: &str,
params: ExecutionParams<'_>,
) -> Result<Option<RuntimeValue>, Error>;
fn export_entry<'a>(
&self,
name: &str,
required_type: &ExportEntryType<'_>,
) -> Result<Internal, Error>;
fn table(&self, index: ItemIndex) -> Result<Arc<TableInstance>, Error>;
fn memory(&self, index: ItemIndex) -> Result<Arc<MemoryInstance>, Error>;
fn global<'a>(
&self,
index: ItemIndex,
variable_type: Option<VariableType>,
externals: Option<&'a HashMap<String, Arc<dyn ModuleInstanceInterface + 'a>>>,
) -> Result<Arc<VariableInstance>, Error>;
fn function_type(
&self,
function_index: ItemIndex,
) -> Result<FunctionSignature<'_>, Error>;
fn function_type_by_index(
&self,
type_index: u32,
) -> Result<FunctionSignature<'_>, Error>;
fn function_reference<'a>(
&self,
index: ItemIndex,
externals: Option<&'a HashMap<String, Arc<dyn ModuleInstanceInterface + 'a>>>,
) -> Result<InternalFunctionReference<'a>, Error>;
fn function_reference_indirect<'a>(
&self,
table_idx: u32,
type_idx: u32,
func_idx: u32,
externals: Option<&'a HashMap<String, Arc<dyn ModuleInstanceInterface + 'a>>>,
) -> Result<InternalFunctionReference<'a>, Error>;
fn function_body<'a>(
&'a self,
internal_index: u32,
) -> Result<Option<InternalFunction<'a>>, Error>;
fn call_internal_function(
&self,
outer: CallerContext<'_>,
index: u32,
) -> Result<Option<RuntimeValue>, Error>;
}
Expand description
Module instance API.
Required Methods§
Sourcefn execute_index(
&self,
index: u32,
params: ExecutionParams<'_>,
) -> Result<Option<RuntimeValue>, Error>
fn execute_index( &self, index: u32, params: ExecutionParams<'_>, ) -> Result<Option<RuntimeValue>, Error>
Execute function with the given index.
Sourcefn execute_export(
&self,
name: &str,
params: ExecutionParams<'_>,
) -> Result<Option<RuntimeValue>, Error>
fn execute_export( &self, name: &str, params: ExecutionParams<'_>, ) -> Result<Option<RuntimeValue>, Error>
Execute function with the given export name.
Sourcefn export_entry<'a>(
&self,
name: &str,
required_type: &ExportEntryType<'_>,
) -> Result<Internal, Error>
fn export_entry<'a>( &self, name: &str, required_type: &ExportEntryType<'_>, ) -> Result<Internal, Error>
Get export entry.
Sourcefn global<'a>(
&self,
index: ItemIndex,
variable_type: Option<VariableType>,
externals: Option<&'a HashMap<String, Arc<dyn ModuleInstanceInterface + 'a>>>,
) -> Result<Arc<VariableInstance>, Error>
fn global<'a>( &self, index: ItemIndex, variable_type: Option<VariableType>, externals: Option<&'a HashMap<String, Arc<dyn ModuleInstanceInterface + 'a>>>, ) -> Result<Arc<VariableInstance>, Error>
Get global reference.
Sourcefn function_type(
&self,
function_index: ItemIndex,
) -> Result<FunctionSignature<'_>, Error>
fn function_type( &self, function_index: ItemIndex, ) -> Result<FunctionSignature<'_>, Error>
Get function type for given function index.
Sourcefn function_type_by_index(
&self,
type_index: u32,
) -> Result<FunctionSignature<'_>, Error>
fn function_type_by_index( &self, type_index: u32, ) -> Result<FunctionSignature<'_>, Error>
Get function type for given function index.
Sourcefn function_reference<'a>(
&self,
index: ItemIndex,
externals: Option<&'a HashMap<String, Arc<dyn ModuleInstanceInterface + 'a>>>,
) -> Result<InternalFunctionReference<'a>, Error>
fn function_reference<'a>( &self, index: ItemIndex, externals: Option<&'a HashMap<String, Arc<dyn ModuleInstanceInterface + 'a>>>, ) -> Result<InternalFunctionReference<'a>, Error>
Get function reference.
Sourcefn function_reference_indirect<'a>(
&self,
table_idx: u32,
type_idx: u32,
func_idx: u32,
externals: Option<&'a HashMap<String, Arc<dyn ModuleInstanceInterface + 'a>>>,
) -> Result<InternalFunctionReference<'a>, Error>
fn function_reference_indirect<'a>( &self, table_idx: u32, type_idx: u32, func_idx: u32, externals: Option<&'a HashMap<String, Arc<dyn ModuleInstanceInterface + 'a>>>, ) -> Result<InternalFunctionReference<'a>, Error>
Get function indirect reference.
Sourcefn function_body<'a>(
&'a self,
internal_index: u32,
) -> Result<Option<InternalFunction<'a>>, Error>
fn function_body<'a>( &'a self, internal_index: u32, ) -> Result<Option<InternalFunction<'a>>, Error>
Get internal function for interpretation.
Sourcefn call_internal_function(
&self,
outer: CallerContext<'_>,
index: u32,
) -> Result<Option<RuntimeValue>, Error>
fn call_internal_function( &self, outer: CallerContext<'_>, index: u32, ) -> Result<Option<RuntimeValue>, Error>
Call function with given internal index.