Skip to main content

MockInvocationFrame

Struct MockInvocationFrame 

Source
pub struct MockInvocationFrame { /* private fields */ }
Expand description

One open invocation frame in a mocked transaction. Drive it with execute, then read the outcome with result. Prefer the fluent crate::frame_builder::FrameBuilder API unless a test needs this level of control.

Implementations§

Source§

impl MockInvocationFrame

Source

pub fn open_child_frame( &mut self, contract_address: ContractAddress, ) -> MockInvocationFrameConfig<'_>

Configure a child frame of this one, invoking contract_address.

The address must differ from every frame already open on the stack: the test FFI admits mock frames under the same reentrance rule production applies to Invoke, so an address that already has an active frame is refused and build() panics unrecoverably. Frames that have already finished, and frames in other transactions, do not count — only the ones open at the same time.

Source

pub fn execute( &mut self, lambda: impl FnOnce(&mut Self) -> FrameAction + UnwindSafe, ) -> &mut Self

Run lambda as this frame’s contract code, mapping panics out of it to frame outcomes. Unrecoverable InvokeError payloads (harness misuse, FFI refusals) propagate instead. The returned FrameAction closes the frame or leaves it open for another execute.

Source

pub fn result(&mut self) -> FrameResult

The closed frame’s FrameResult. Panics if the frame is still open.

Trait Implementations§

Source§

impl Drop for MockInvocationFrame

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> StaticIfNoAlloc for T

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.