Struct StackManager

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

Concrete implementation of stack operations for the VM

Wraps the low-level Stack and provides high-level stack management functionality for the execution engine.

Implementations§

Source§

impl StackManager

Source

pub fn new() -> Self

Creates a new stack manager with an empty stack

Initializes the stack manager with a fresh, empty stack ready for VM operations.

Source

pub fn stack(&self) -> &Stack

Gets read-only access to the underlying stack

Provides access to the stack for inspection and debugging without allowing modifications.

Source

pub fn stack_mut(&mut self) -> &mut Stack

Gets mutable access to the underlying stack

Provides direct access to the stack for advanced operations and testing purposes.

Trait Implementations§

Source§

impl StackOperations for StackManager

Source§

fn push(&mut self, value: Value)

Pushes a value onto the top of the stack Read more
Source§

fn pop(&mut self) -> Option<Value>

Pops a value from the top of the stack Read more
Source§

fn peek(&self) -> Option<&Value>

Peeks at the top value without removing it Read more
Source§

fn clear(&mut self)

Clears all values from the stack
Source§

fn len(&self) -> usize

Gets the current number of values on the stack Read more
Source§

fn is_empty(&self) -> bool

Checks if the stack is empty Read more
Source§

fn stack_mut(&mut self) -> &mut Stack

Gets a mutable reference to the underlying stack Read more
Source§

fn size(&self) -> usize

Gets the current size of the stack 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, 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.