pub trait Tunables {
    fn memory_style(&self, memory: &MemoryType) -> MemoryStyle;
    fn table_style(&self, table: &TableType) -> TableStyle;
    fn create_host_memory(
        &self,
        ty: &MemoryType,
        style: &MemoryStyle
    ) -> Result<VMMemory, MemoryError>; unsafe fn create_vm_memory(
        &self,
        ty: &MemoryType,
        style: &MemoryStyle,
        vm_definition_location: NonNull<VMMemoryDefinition>
    ) -> Result<VMMemory, MemoryError>; fn create_host_table(
        &self,
        ty: &TableType,
        style: &TableStyle
    ) -> Result<VMTable, String>; unsafe fn create_vm_table(
        &self,
        ty: &TableType,
        style: &TableStyle,
        vm_definition_location: NonNull<VMTableDefinition>
    ) -> Result<VMTable, String>; fn create_global(&self, ty: GlobalType) -> Result<VMGlobal, String> { ... } unsafe fn create_memories(
        &self,
        context: &mut StoreObjects,
        module: &ModuleInfo,
        memory_styles: &PrimaryMap<MemoryIndex, MemoryStyle>,
        memory_definition_locations: &[NonNull<VMMemoryDefinition>]
    ) -> Result<PrimaryMap<LocalMemoryIndex, InternalStoreHandle<VMMemory>>, LinkError> { ... } unsafe fn create_tables(
        &self,
        context: &mut StoreObjects,
        module: &ModuleInfo,
        table_styles: &PrimaryMap<TableIndex, TableStyle>,
        table_definition_locations: &[NonNull<VMTableDefinition>]
    ) -> Result<PrimaryMap<LocalTableIndex, InternalStoreHandle<VMTable>>, LinkError> { ... } fn create_globals(
        &self,
        context: &mut StoreObjects,
        module: &ModuleInfo
    ) -> Result<PrimaryMap<LocalGlobalIndex, InternalStoreHandle<VMGlobal>>, LinkError> { ... } }
Expand description

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

Required Methods§

Construct a MemoryStyle for the provided MemoryType

Construct a TableStyle for the provided TableType

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

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.

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

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§

Create a global with an unset value.

Allocate memory for just the memories of the current module.

Safety
  • memory_definition_locations must point to a valid locations in VM memory.

Allocate memory for just the tables of the current module.

Safety

To be done

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

Implementors§