Trait EvmTr

Source
pub trait EvmTr {
    type Context: ContextTr;
    type Instructions: InstructionProvider;
    type Precompiles;

    // Required methods
    fn run_interpreter(
        &mut self,
        interpreter: &mut Interpreter<<Self::Instructions as InstructionProvider>::InterpreterTypes>,
    ) -> <Self::Instructions as InstructionProvider>::Output;
    fn ctx(&mut self) -> &mut Self::Context;
    fn ctx_ref(&self) -> &Self::Context;
    fn ctx_instructions(
        &mut self,
    ) -> (&mut Self::Context, &mut Self::Instructions);
    fn ctx_precompiles(
        &mut self,
    ) -> (&mut Self::Context, &mut Self::Precompiles);
}

Required Associated Types§

Required Methods§

Source

fn run_interpreter( &mut self, interpreter: &mut Interpreter<<Self::Instructions as InstructionProvider>::InterpreterTypes>, ) -> <Self::Instructions as InstructionProvider>::Output

Source

fn ctx(&mut self) -> &mut Self::Context

Source

fn ctx_ref(&self) -> &Self::Context

Source

fn ctx_instructions(&mut self) -> (&mut Self::Context, &mut Self::Instructions)

Source

fn ctx_precompiles(&mut self) -> (&mut Self::Context, &mut Self::Precompiles)

Implementations on Foreign Types§

Source§

impl<'a, T: 'a + EvmTr + ?Sized> EvmTr for &'a mut T

Source§

type Context = <T as EvmTr>::Context

Source§

type Instructions = <T as EvmTr>::Instructions

Source§

type Precompiles = <T as EvmTr>::Precompiles

Source§

fn run_interpreter( &mut self, interpreter: &mut Interpreter<<Self::Instructions as InstructionProvider>::InterpreterTypes>, ) -> <Self::Instructions as InstructionProvider>::Output

Source§

fn ctx(&mut self) -> &mut Self::Context

Source§

fn ctx_ref(&self) -> &Self::Context

Source§

fn ctx_instructions(&mut self) -> (&mut Self::Context, &mut Self::Instructions)

Source§

fn ctx_precompiles(&mut self) -> (&mut Self::Context, &mut Self::Precompiles)

Source§

impl<CTX, INSP, I, P> EvmTr for Evm<CTX, INSP, I, P>
where CTX: ContextTr + Host, I: InstructionProvider<Context = CTX, Output = InterpreterAction>,

Source§

type Context = CTX

Source§

type Instructions = I

Source§

type Precompiles = P

Source§

fn run_interpreter( &mut self, interpreter: &mut Interpreter<<Self::Instructions as InstructionProvider>::InterpreterTypes>, ) -> <Self::Instructions as InstructionProvider>::Output

Source§

fn ctx(&mut self) -> &mut Self::Context

Source§

fn ctx_ref(&self) -> &Self::Context

Source§

fn ctx_instructions(&mut self) -> (&mut Self::Context, &mut Self::Instructions)

Source§

fn ctx_precompiles(&mut self) -> (&mut Self::Context, &mut Self::Precompiles)

Source§

impl<T: EvmTr + ?Sized> EvmTr for Box<T>

Source§

type Context = <T as EvmTr>::Context

Source§

type Instructions = <T as EvmTr>::Instructions

Source§

type Precompiles = <T as EvmTr>::Precompiles

Source§

fn run_interpreter( &mut self, interpreter: &mut Interpreter<<Self::Instructions as InstructionProvider>::InterpreterTypes>, ) -> <Self::Instructions as InstructionProvider>::Output

Source§

fn ctx(&mut self) -> &mut Self::Context

Source§

fn ctx_ref(&self) -> &Self::Context

Source§

fn ctx_instructions(&mut self) -> (&mut Self::Context, &mut Self::Instructions)

Source§

fn ctx_precompiles(&mut self) -> (&mut Self::Context, &mut Self::Precompiles)

Implementors§