Struct wasmer_vm::InstanceAllocator[][src]

pub struct InstanceAllocator { /* fields omitted */ }
Expand description

This is an intermediate type that manages the raw allocation and metadata when creating an [Instance].

This type will free the allocated memory if it’s dropped before being used.

It is important to remind that [Instance] is dynamically-sized based on VMOffsets: The Instance.vmctx field represents a dynamically-sized array that extends beyond the nominal end of the type. So in order to create an instance of it, we must:

  1. Define the correct layout for Instance (size and alignment),
  2. Allocate it properly.

The InstanceAllocator::instance_layout computes the correct layout to represent the wanted [Instance].

Then we use this layout to allocate an empty Instance properly.

Implementations

impl InstanceAllocator[src]

pub fn new(
    module: &ModuleInfo
) -> (Self, Vec<NonNull<VMMemoryDefinition>>, Vec<NonNull<VMTableDefinition>>)
[src]

Allocates instance data for use with InstanceHandle::new.

Returns a wrapper type around the allocation and 2 vectors of pointers into the allocated buffer. These lists of pointers correspond to the location in memory for the local memories and tables respectively. These pointers should be written to before calling InstanceHandle::new.

Trait Implementations

impl Drop for InstanceAllocator[src]

fn drop(&mut self)[src]

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> ArchivePointee for T

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.

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

Converts some archived metadata to the pointer metadata for itself.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Pointee for T

type Metadata = ()

The type for metadata in pointers and references to Self.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.