Trait ModuleInstanceInterface

Source
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§

Source

fn execute_index( &self, index: u32, params: ExecutionParams<'_>, ) -> Result<Option<RuntimeValue>, Error>

Execute function with the given index.

Source

fn execute_export( &self, name: &str, params: ExecutionParams<'_>, ) -> Result<Option<RuntimeValue>, Error>

Execute function with the given export name.

Source

fn export_entry<'a>( &self, name: &str, required_type: &ExportEntryType<'_>, ) -> Result<Internal, Error>

Get export entry.

Source

fn table(&self, index: ItemIndex) -> Result<Arc<TableInstance>, Error>

Get table reference.

Source

fn memory(&self, index: ItemIndex) -> Result<Arc<MemoryInstance>, Error>

Get memory reference.

Source

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.

Source

fn function_type( &self, function_index: ItemIndex, ) -> Result<FunctionSignature<'_>, Error>

Get function type for given function index.

Source

fn function_type_by_index( &self, type_index: u32, ) -> Result<FunctionSignature<'_>, Error>

Get function type for given function index.

Source

fn function_reference<'a>( &self, index: ItemIndex, externals: Option<&'a HashMap<String, Arc<dyn ModuleInstanceInterface + 'a>>>, ) -> Result<InternalFunctionReference<'a>, Error>

Get function reference.

Source

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.

Source

fn function_body<'a>( &'a self, internal_index: u32, ) -> Result<Option<InternalFunction<'a>>, Error>

Get internal function for interpretation.

Source

fn call_internal_function( &self, outer: CallerContext<'_>, index: u32, ) -> Result<Option<RuntimeValue>, Error>

Call function with given internal index.

Implementors§