pub struct Instance {
pub exports: Exports,
/* private fields */
}
Expand description
A WebAssembly Instance is a stateful, executable
instance of a WebAssembly Module
.
Instance objects contain all the exported WebAssembly functions, memories, tables and globals that allow interacting with WebAssembly.
Spec: https://webassembly.github.io/spec/core/exec/runtime.html#module-instances
Fields
exports: Exports
The exports for an instance.
Implementations
sourceimpl Instance
impl Instance
sourcepub fn new(
store: &mut impl AsStoreMut,
module: &Module,
imports: &Imports
) -> Result<Self, InstantiationError>
pub fn new(
store: &mut impl AsStoreMut,
module: &Module,
imports: &Imports
) -> Result<Self, InstantiationError>
Creates a new Instance
from a WebAssembly Module
and a
set of imports using Imports
or the imports
macro helper.
let mut store = Store::default();
let env = FunctionEnv::new(&mut store, ());
let module = Module::new(&store, "(module)")?;
let imports = imports!{
"host" => {
"var" => Global::new(&mut store, Value::I32(2))
}
};
let instance = Instance::new(&mut store, &module, &imports)?;
Errors
The function can return InstantiationError
s.
Those are, as defined by the spec:
- Link errors that happen when plugging the imports into the instance
- Runtime errors that happen when running the module
start
function.
sourcepub fn new_by_index(
store: &mut impl AsStoreMut,
module: &Module,
externs: &[Extern]
) -> Result<Self, InstantiationError>
pub fn new_by_index(
store: &mut impl AsStoreMut,
module: &Module,
externs: &[Extern]
) -> Result<Self, InstantiationError>
Creates a new Instance
from a WebAssembly Module
and a
vector of imports.
Errors
The function can return InstantiationError
s.
Those are, as defined by the spec:
- Link errors that happen when plugging the imports into the instance
- Runtime errors that happen when running the module
start
function.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Instance
impl Send for Instance
impl Sync for Instance
impl Unpin for Instance
impl UnwindSafe for Instance
Blanket Implementations
impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
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 F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> Upcastable for T where
T: 'static + Any + Send + Sync,
impl<T> Upcastable for T where
T: 'static + Any + Send + Sync,
sourcefn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
sourcefn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more