pub struct Store<T> { /* private fields */ }
Expand description
The store that owns all data associated to Wasm modules.
Implementations§
source§impl<T> Store<T>
impl<T> Store<T>
sourcepub fn data(&self) -> &T
pub fn data(&self) -> &T
Returns a shared reference to the user provided data owned by this Store
.
sourcepub fn data_mut(&mut self) -> &mut T
pub fn data_mut(&mut self) -> &mut T
Returns an exclusive reference to the user provided data owned by this Store
.
sourcepub fn limiter(
&mut self,
limiter: impl FnMut(&mut T) -> &mut dyn ResourceLimiter + Send + Sync + 'static,
)
pub fn limiter( &mut self, limiter: impl FnMut(&mut T) -> &mut dyn ResourceLimiter + Send + Sync + 'static, )
Installs a function into the Store
that will be called with the user
data type T
to retrieve a ResourceLimiter
any time a limited,
growable resource such as a linear memory or table is grown.
sourcepub fn get_fuel(&self) -> Result<u64, Error>
pub fn get_fuel(&self) -> Result<u64, Error>
Returns the remaining fuel of the Store
if fuel metering is enabled.
§Note
Enable fuel metering via Config::consume_fuel
.
§Errors
If fuel metering is disabled.
sourcepub fn set_fuel(&mut self, fuel: u64) -> Result<(), Error>
pub fn set_fuel(&mut self, fuel: u64) -> Result<(), Error>
Sets the remaining fuel of the Store
to value
if fuel metering is enabled.
§Note
Enable fuel metering via Config::consume_fuel
.
§Errors
If fuel metering is disabled.
sourcepub fn call_hook(
&mut self,
hook: impl FnMut(&mut T, CallHook) -> Result<(), Error> + Send + Sync + 'static,
)
pub fn call_hook( &mut self, hook: impl FnMut(&mut T, CallHook) -> Result<(), Error> + Send + Sync + 'static, )
Sets a callback function that is executed whenever a WebAssembly function is called from the host or a host function is called from WebAssembly, or these functions return.
The function is passed a &mut T
to the underlying store, and a
CallHook
. CallHook
can be used to find out what kind of function
is being called or returned from.
The callback can either return Ok(())
or an Err
with an
Error
. If an error is returned, it is returned to the host
caller. If there are nested calls, only the most recent host caller
receives the error and it is not propagated further automatically. The
hook may be invoked again as new functions are called and returned from.
Trait Implementations§
source§impl<T> AsContext for Store<T>
impl<T> AsContext for Store<T>
source§fn as_context(&self) -> StoreContext<'_, Self::Data>
fn as_context(&self) -> StoreContext<'_, Self::Data>
source§impl<T> AsContextMut for Store<T>
impl<T> AsContextMut for Store<T>
source§fn as_context_mut(&mut self) -> StoreContextMut<'_, Self::Data>
fn as_context_mut(&mut self) -> StoreContextMut<'_, Self::Data>
Auto Trait Implementations§
impl<T> Freeze for Store<T>where
T: Freeze,
impl<T> !RefUnwindSafe for Store<T>
impl<T> Send for Store<T>where
T: Send,
impl<T> Sync for Store<T>where
T: Sync,
impl<T> Unpin for Store<T>where
T: Unpin,
impl<T> !UnwindSafe for Store<T>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.