Struct wasm_runtime_layer::Store

source ·
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> Freeze for Store<T, E>
where <E as WasmEngine>::Store<T>: Freeze,

§

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
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.