Struct evm::Machine[][src]

pub struct Machine { /* fields omitted */ }

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 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]

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

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

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

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

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

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.

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.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]