Struct wasmer::sys::vm::VMTable

pub(crate) struct VMTable {
    vec: Vec<RawTableElement, Global>,
    maximum: Option<u32>,
    table: TableType,
    style: TableStyle,
    vm_table_definition: MaybeInstanceOwned<VMTableDefinition>,
}
Expand description

A table instance.

Fields§

§vec: Vec<RawTableElement, Global>§maximum: Option<u32>§table: TableType§style: TableStyle§vm_table_definition: MaybeInstanceOwned<VMTableDefinition>

Implementations§

§

impl VMTable

pub fn new(table: &TableType, style: &TableStyle) -> Result<VMTable, String>

Create a new linear table instance with specified minimum and maximum number of elements.

This creates a Table with metadata owned by a VM, pointed to by vm_table_location: this can be used to create a local table.

pub fn get_runtime_size(&self) -> u32

Returns the size of the table

pub unsafe fn from_definition( table: &TableType, style: &TableStyle, vm_table_location: NonNull<VMTableDefinition> ) -> Result<VMTable, String>

Create a new linear table instance with specified minimum and maximum number of elements.

This creates a Table with metadata owned by a VM, pointed to by vm_table_location: this can be used to create a local table.

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

pub fn ty(&self) -> &TableType

Returns the type for this Table.

pub fn style(&self) -> &TableStyle

Returns the style for this Table.

pub fn size(&self) -> u32

Returns the number of allocated elements.

pub fn grow(&mut 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.

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

Get reference to the specified element.

Returns None if the index is out of bounds.

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

Set reference to the specified element.

Errors

Returns an error if the index is out of bounds.

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

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

pub fn copy( &mut self, src_table: &VMTable, 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.

pub fn copy_on_write(&self) -> Result<VMTable, String>

Copies the table into a new table

pub fn copy_within( &mut self, dst_index: u32, src_index: u32, len: u32 ) -> Result<(), Trap>

Copy len elements from table[src_index..] to table[dst_index..].

Errors

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

Trait Implementations§

§

impl Debug for VMTable

§

fn fmt(&self, __f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more