pub struct InstanceHandle { /* private fields */ }
Expand description

A handle holding an Instance of a WebAssembly module.

Implementations

Create a new InstanceHandle pointing at a new Instance.

Unsafety

This method is not necessarily inherently unsafe to call, but in general the APIs of an Instance are quite unsafe and have not been really audited for safety that much. As a result the unsafety here on this method is a low-overhead way of saying “this is an extremely unsafe type to work with”.

Extreme care must be taken when working with InstanceHandle and it’s recommended to have relatively intimate knowledge of how it works internally if you’d like to do so. If possible it’s recommended to use the wasmtime crate API rather than this type since that is vetted for safety.

It is your responsibility to ensure that the given raw externref_activations_table and stack_map_registry outlive this instance.

Finishes the instantiation process started by Instance::new.

Only safe to call immediately after instantiation.

Create a new InstanceHandle pointing at the instance pointed to by the given VMContext pointer.

Safety

This is unsafe because it doesn’t work on just any VMContext, it must be a VMContext allocated as part of an Instance.

Return a reference to the vmctx used by compiled wasm code.

Return a raw pointer to the vmctx used by compiled wasm code.

Return a reference to a module.

Lookup an export with the given name.

Lookup an export with the given export declaration.

Return an iterator over the exports of this instance.

Specifically, it provides access to the key-value pairs, where the keys are export names, and the values are export declarations which can be resolved lookup_by_declaration.

Return a reference to the custom state attached to this instance.

Return the memory index for the given VMMemoryDefinition in this instance.

Grow memory in this instance by the specified amount of pages.

Returns None if memory can’t be grown by the specified amount of pages.

Return the table index for the given VMTableDefinition in this instance.

Grow table in this instance by the specified amount of elements.

When the table is successfully grown, returns the original size of the table.

Returns None if memory can’t be grown by the specified amount of pages or if the init_value is the incorrect table element type.

Grow table in this instance by the specified amount of elements.

When the table is successfully grown, returns the original size of the table.

Returns None if memory can’t be grown by the specified amount of pages or if the init_value is the incorrect table element type.

Get table element reference.

Returns None if index is out of bounds.

Set table element reference.

Returns an error if the index is out of bounds

Fill a region of the table.

Returns an error if the region is out of bounds or val is not of the correct type.

Get a table defined locally within this module.

Returns a clone of this instance.

This is unsafe because the returned handle here is just a cheap clone of the internals, there’s no lifetime tracking around its validity. You’ll need to ensure that the returned handles all go out of scope at the same time.

Deallocates memory associated with this instance.

Note that this is unsafe because there might be other handles to this InstanceHandle elsewhere, and there’s nothing preventing usage of this handle after this function is called.

Trait Implementations

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Compare self to key and return true if they are equal.

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.