pub struct CallingFrame { /* private fields */ }
Expand description

Represents a calling frame on top of stack.

Implementations§

source§

impl CallingFrame

source

pub fn executor_mut(&self) -> Option<Executor>

Returns the executor instance from this calling frame.

source

pub fn module_instance(&self) -> Option<Instance>

Returns the module instance in this calling frame.

If the executing function instance is a host function and not added into any module instance, then returns None.

When a wasm function is executing and trying to call a host function inside, a frame with the module instance the wasm function belongs to will be pushed onto the stack. And therefore the calling frame context will record that module instance.

source

pub fn memory_mut(&self, idx: u32) -> Option<Memory>

Returns the memory instance by the given index from the module instance of the current calling frame. If the memory instance is not found, returns None.

By default, a WASM module has only one memory instance after instantiation. Therefore, users can pass in 0 as the index to get the memory instance in host function body. When the MultiMemories config option is enabled, there would be more than one memory instances in the wasm module. Users can retrieve the target memory instance by specifying the index of the memory instance in the wasm module instance.

Arguments
  • idx - The index of the memory instance.
source

pub fn as_ptr(&self) -> *const WasmEdge_CallingFrameContext

Available on crate feature ffi only.

Provides a raw pointer to the inner CallingFrame context.

Trait Implementations§

source§

impl Debug for CallingFrame

source§

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

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

impl Drop for CallingFrame

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere 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 Twhere 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.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V