Trait wasmer_vm::Table

source ·
pub trait Table: Debug + Send + Sync {
    // Required methods
    fn style(&self) -> &TableStyle;
    fn ty(&self) -> &TableType;
    fn size(&self) -> u32;
    fn grow(&self, delta: u32, init_value: TableElement) -> Option<u32>;
    fn get(&self, index: u32) -> Option<TableElement>;
    fn set(&self, index: u32, reference: TableElement) -> Result<(), Trap>;
    fn vmtable(&self) -> NonNull<VMTableDefinition>;

    // Provided method
    fn copy(
        &self,
        src_table: &dyn Table,
        dst_index: u32,
        src_index: u32,
        len: u32
    ) -> Result<(), Trap> { ... }
}
Expand description

Trait for implementing the interface of a Wasm table.

Required Methods§

source

fn style(&self) -> &TableStyle

Returns the style for this Table.

source

fn ty(&self) -> &TableType

Returns the type for this Table.

source

fn size(&self) -> u32

Returns the number of allocated elements.

source

fn grow(&self, delta: u32, init_value: TableElement) -> Option<u32>

Grow table by the specified amount of elements.

Returns None if table can’t be grown by the specified amount of elements, otherwise returns the previous size of the table.

source

fn get(&self, index: u32) -> Option<TableElement>

Get reference to the specified element.

Returns None if the index is out of bounds.

source

fn set(&self, index: u32, reference: TableElement) -> Result<(), Trap>

Set reference to the specified element.

Errors

Returns an error if the index is out of bounds.

source

fn vmtable(&self) -> NonNull<VMTableDefinition>

Return a VMTableDefinition for exposing the table to compiled wasm code.

Provided Methods§

source

fn copy( &self, src_table: &dyn Table, dst_index: u32, src_index: u32, len: u32 ) -> Result<(), Trap>

Copy len elements from src_table[src_index..] into dst_table[dst_index..].

Errors

Returns an error if the range is out of bounds of either the source or destination tables.

Implementors§