Trait Tunables

Source
pub trait Tunables {
    // 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>;
}
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.

Implementors§