Struct wasmi::Caller

source ·
pub struct Caller<'a, T> { /* private fields */ }
Expand description

Represents the caller’s context when creating a host function via Func::wrap.

Implementations§

source§

impl<'a, T> Caller<'a, T>

source

pub fn get_export(&self, name: &str) -> Option<Extern>

Queries the caller for an exported definition identifier by name.

Returns None if there is no associated Instance of the caller or if the caller does not provide an export under the name name.

source

pub fn data(&self) -> &T

Returns a shared reference to the user provided host data.

source

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

Returns an exclusive reference to the user provided host data.

source

pub fn engine(&self) -> &Engine

Returns a shared reference to the used Engine.

source

pub fn add_fuel(&mut self, delta: u64) -> Result<(), FuelError>

Adds delta quantity of fuel to the remaining fuel.

§Panics

If this overflows the remaining fuel counter.

§Errors

If fuel metering is disabled.

source

pub fn fuel_consumed(&self) -> Option<u64>

Returns the amount of fuel consumed by executions of the Store so far.

Returns None if fuel metering is disabled.

source

pub fn consume_fuel(&mut self, delta: u64) -> Result<u64, FuelError>

Synthetically consumes an amount of fuel for the Store.

Returns the remaining amount of fuel after this operation.

§Panics

If this overflows the consumed fuel counter.

§Errors
  • If fuel metering is disabled.
  • If more fuel is consumed than available.

Trait Implementations§

source§

impl<T> AsContext for Caller<'_, T>

§

type UserState = T

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

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

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

impl<T> AsContextMut for Caller<'_, T>

source§

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

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

impl<'a, T: AsContextMut> From<&'a mut T> for Caller<'a, T::UserState>

source§

fn from(ctx: &'a mut T) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a, T> !RefUnwindSafe for Caller<'a, T>

§

impl<'a, T> Send for Caller<'a, T>
where T: Send,

§

impl<'a, T> Sync for Caller<'a, T>
where T: Sync,

§

impl<'a, T> Unpin for Caller<'a, T>

§

impl<'a, T> !UnwindSafe for Caller<'a, 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
§

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.