pub struct Store<T, E: WasmEngine> { /* private fields */ }
Expand description

The store represents all global state that can be manipulated by WebAssembly programs. It consists of the runtime representation of all instances of functions, tables, memories, and globals that have been allocated during the lifetime of the abstract machine.

The Store holds the engine (that is —amongst many things— used to compile the Wasm bytes into a valid module artifact).

Spec: https://webassembly.github.io/spec/core/exec/runtime.html#store

Implementations§

source§

impl<T, E: WasmEngine> Store<T, E>

source

pub fn new(engine: &Engine<E>, data: T) -> Self

Creates a new Store with a specific Engine.

source

pub fn engine(&self) -> &Engine<E>

Returns the Engine that this store is associated with.

source

pub fn data(&self) -> &T

Returns a shared reference to the user provided data owned by this Store.

source

pub fn data_mut(&mut self) -> &mut T

Returns an exclusive reference to the user provided data owned by this Store.

source

pub fn into_data(self) -> T

Consumes self and returns its user provided data.

Trait Implementations§

source§

impl<T, E: WasmEngine> AsContext for Store<T, E>

§

type Engine = E

The engine type associated with the context.
§

type UserState = T

The user state associated with the Store, aka the T in Store<T>.
source§

fn as_context(&self) -> StoreContext<'_, Self::UserState, Self::Engine>

Returns the store context that this type provides access to.
source§

impl<T, E: WasmEngine> AsContextMut for Store<T, E>

source§

fn as_context_mut( &mut self ) -> StoreContextMut<'_, Self::UserState, Self::Engine>

Returns the store context that this type provides access to.

Auto Trait Implementations§

§

impl<T, E> RefUnwindSafe for Store<T, E>
where <E as WasmEngine>::Store<T>: RefUnwindSafe,

§

impl<T, E> Send for Store<T, E>
where <E as WasmEngine>::Store<T>: Send,

§

impl<T, E> Sync for Store<T, E>
where <E as WasmEngine>::Store<T>: Sync,

§

impl<T, E> Unpin for Store<T, E>
where <E as WasmEngine>::Store<T>: Unpin,

§

impl<T, E> UnwindSafe for Store<T, E>
where <E as WasmEngine>::Store<T>: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<E, C> AsContext<E> for C
where C: AsContext<Engine = E>, E: WasmEngine,

§

type UserState = <C as AsContext>::UserState

The type of data associated with the store.
source§

fn as_context( &self ) -> <E as WasmEngine>::StoreContext<'_, <C as AsContext<E>>::UserState>

Returns the store context that this type provides access to.
source§

impl<E, C> AsContextMut<E> for C
where C: AsContextMut<Engine = E>, E: WasmEngine,

source§

fn as_context_mut( &mut self ) -> <E as WasmEngine>::StoreContextMut<'_, <C as AsContext<E>>::UserState>

Returns the store context that this type provides access to.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where 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, U> TryFrom<U> for T
where 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 T
where 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.