Struct Store

Source
pub struct Store<T: 'static> { /* private fields */ }
Expand description

Owns all the data for the wasm module

Can be cheaply cloned

The data is retained through the lifetime of the store, and no GC will collect data from no-longer used modules. It is as such recommended to have the stores lifetime correspond to its modules, and not repeatedly create and drop modules within an existing store, but rather create a new store for it, to avoid unbounded memory use.

Trait Implementations§

Source§

impl<T: 'static> AsContext<Engine> for Store<T>

Source§

type UserState = T

The type of data associated with the store.
Source§

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

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

impl<T: 'static> AsContextMut<Engine> for Store<T>

Source§

fn as_context_mut(&mut self) -> StoreContextMut<'_, T>

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

impl<T: 'static + Debug> Debug for Store<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: 'static> Drop for Store<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<T: 'static> WasmStore<T, Engine> for Store<T>

Source§

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

Creates a new store atop the given engine.
Source§

fn engine(&self) -> &Engine

Gets the engine associated with this store.
Source§

fn data(&self) -> &T

Gets an immutable reference to the underlying stored data.
Source§

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

Gets a mutable reference to the underlying stored data.
Source§

fn into_data(self) -> T

Consumes self and returns its user provided data.

Auto Trait Implementations§

§

impl<T> Freeze for Store<T>

§

impl<T> !RefUnwindSafe for Store<T>

§

impl<T> !Send for Store<T>

§

impl<T> !Sync for Store<T>

§

impl<T> Unpin for Store<T>

§

impl<T> !UnwindSafe for Store<T>

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

Source§

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

Source§

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.