wasmer_engine

Trait Tunables

Source
pub trait Tunables: MemoryUsage {
    // Required methods
    fn memory_style(&self, memory: &MemoryType) -> MemoryStyle;
    fn table_style(&self, table: &TableType) -> TableStyle;
    fn create_host_memory(
        &self,
        ty: &MemoryType,
        style: &MemoryStyle,
    ) -> Result<Arc<dyn Memory>, MemoryError>;
    unsafe fn create_vm_memory(
        &self,
        ty: &MemoryType,
        style: &MemoryStyle,
        vm_definition_location: NonNull<VMMemoryDefinition>,
    ) -> Result<Arc<dyn Memory>, MemoryError>;
    fn create_host_table(
        &self,
        ty: &TableType,
        style: &TableStyle,
    ) -> Result<Arc<dyn Table>, String>;
    unsafe fn create_vm_table(
        &self,
        ty: &TableType,
        style: &TableStyle,
        vm_definition_location: NonNull<VMTableDefinition>,
    ) -> Result<Arc<dyn Table>, String>;

    // Provided methods
    fn create_global(&self, ty: GlobalType) -> Result<Arc<Global>, String> { ... }
    unsafe fn create_memories(
        &self,
        module: &ModuleInfo,
        memory_styles: &PrimaryMap<MemoryIndex, MemoryStyle>,
        memory_definition_locations: &[NonNull<VMMemoryDefinition>],
    ) -> Result<PrimaryMap<LocalMemoryIndex, Arc<dyn Memory>>, LinkError> { ... }
    unsafe fn create_tables(
        &self,
        module: &ModuleInfo,
        table_styles: &PrimaryMap<TableIndex, TableStyle>,
        table_definition_locations: &[NonNull<VMTableDefinition>],
    ) -> Result<PrimaryMap<LocalTableIndex, Arc<dyn Table>>, LinkError> { ... }
    fn create_globals(
        &self,
        module: &ModuleInfo,
    ) -> Result<PrimaryMap<LocalGlobalIndex, Arc<Global>>, LinkError> { ... }
}
Expand description

An engine delegates the creation of memories, tables, and globals to a foreign implementor of this trait.

Required Methods§

Source

fn memory_style(&self, memory: &MemoryType) -> MemoryStyle

Construct a MemoryStyle for the provided MemoryType

Source

fn table_style(&self, table: &TableType) -> TableStyle

Construct a TableStyle for the provided TableType

Source

fn create_host_memory( &self, ty: &MemoryType, style: &MemoryStyle, ) -> Result<Arc<dyn Memory>, MemoryError>

Create a memory owned by the host given a MemoryType and a MemoryStyle.

Source

unsafe fn create_vm_memory( &self, ty: &MemoryType, style: &MemoryStyle, vm_definition_location: NonNull<VMMemoryDefinition>, ) -> Result<Arc<dyn Memory>, MemoryError>

Create a memory owned by the VM given a MemoryType and a MemoryStyle.

§Safety
  • vm_definition_location must point to a valid location in VM memory.
Source

fn create_host_table( &self, ty: &TableType, style: &TableStyle, ) -> Result<Arc<dyn Table>, String>

Create a table owned by the host given a TableType and a TableStyle.

Source

unsafe fn create_vm_table( &self, ty: &TableType, style: &TableStyle, vm_definition_location: NonNull<VMTableDefinition>, ) -> Result<Arc<dyn Table>, String>

Create a table owned by the VM given a TableType and a TableStyle.

§Safety
  • vm_definition_location must point to a valid location in VM memory.

Provided Methods§

Source

fn create_global(&self, ty: GlobalType) -> Result<Arc<Global>, String>

Create a global with an unset value.

Source

unsafe fn create_memories( &self, module: &ModuleInfo, memory_styles: &PrimaryMap<MemoryIndex, MemoryStyle>, memory_definition_locations: &[NonNull<VMMemoryDefinition>], ) -> Result<PrimaryMap<LocalMemoryIndex, Arc<dyn Memory>>, LinkError>

Allocate memory for just the memories of the current module.

Source

unsafe fn create_tables( &self, module: &ModuleInfo, table_styles: &PrimaryMap<TableIndex, TableStyle>, table_definition_locations: &[NonNull<VMTableDefinition>], ) -> Result<PrimaryMap<LocalTableIndex, Arc<dyn Table>>, LinkError>

Allocate memory for just the tables of the current module.

Source

fn create_globals( &self, module: &ModuleInfo, ) -> Result<PrimaryMap<LocalGlobalIndex, Arc<Global>>, LinkError>

Allocate memory for just the globals of the current module, with initializers applied.

Implementors§