Struct evm::Machine[][src]

pub struct Machine { /* fields omitted */ }
Expand description

Core execution layer for EVM.

Implementations

impl Machine[src]

pub fn stack(&self) -> &Stack[src]

Reference of machine stack.

pub fn stack_mut(&mut self) -> &mut Stack[src]

Mutable reference of machine stack.

pub fn memory(&self) -> &Memory[src]

Reference of machine memory.

pub fn memory_mut(&mut self) -> &mut Memory[src]

Mutable reference of machine memory.

pub fn position(&self) -> &Result<usize, ExitReason>[src]

Return a reference of the program counter.

pub fn new(
    code: Rc<Vec<u8, Global>>,
    data: Rc<Vec<u8, Global>>,
    stack_limit: usize,
    memory_limit: usize
) -> Machine
[src]

Create a new machine with given code and data.

pub fn exit(&mut self, reason: ExitReason)[src]

Explict exit of the machine. Further step will return error.

pub fn inspect(&self) -> Option<(Opcode, &Stack)>[src]

Inspect the machine’s next opcode and current stack.

pub fn return_value(&self) -> Vec<u8, Global>[src]

Copy and get the return value of the machine, if any.

pub fn run(&mut self) -> Capture<ExitReason, Opcode>[src]

Loop stepping the machine, until it stops.

pub fn step(&mut self) -> Result<(), Capture<ExitReason, Opcode>>[src]

Step the machine, executing one opcode. It then returns.

Auto Trait Implementations

impl !RefUnwindSafe for Machine

impl !Send for Machine

impl !Sync for Machine

impl Unpin for Machine

impl UnwindSafe for Machine

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.