Trait Frame

pub trait Frame: Sized {
    type Evm;
    type FrameInit;
    type FrameResult;
    type Error;

    // Required methods
    fn init_first(
        evm: &mut Self::Evm,
        frame_input: Self::FrameInit,
    ) -> Result<ItemOrResult<Self, Self::FrameResult>, Self::Error>;
    fn init(
        &self,
        evm: &mut Self::Evm,
        frame_input: Self::FrameInit,
    ) -> Result<ItemOrResult<Self, Self::FrameResult>, Self::Error>;
    fn run(
        &mut self,
        evm: &mut Self::Evm,
    ) -> Result<ItemOrResult<Self::FrameInit, Self::FrameResult>, Self::Error>;
    fn return_result(
        &mut self,
        evm: &mut Self::Evm,
        result: Self::FrameResult,
    ) -> Result<(), Self::Error>;
}
Expand description

Call frame trait

Required Associated Types§

type Evm

type FrameInit

type FrameResult

type Error

Required Methods§

fn init_first( evm: &mut Self::Evm, frame_input: Self::FrameInit, ) -> Result<ItemOrResult<Self, Self::FrameResult>, Self::Error>

fn init( &self, evm: &mut Self::Evm, frame_input: Self::FrameInit, ) -> Result<ItemOrResult<Self, Self::FrameResult>, Self::Error>

fn run( &mut self, evm: &mut Self::Evm, ) -> Result<ItemOrResult<Self::FrameInit, Self::FrameResult>, Self::Error>

fn return_result( &mut self, evm: &mut Self::Evm, result: Self::FrameResult, ) -> Result<(), Self::Error>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

§

impl<EVM, ERROR> Frame for EthFrame<EVM, ERROR, EthInterpreter>
where <EVM as EvmTr>::Precompiles: PrecompileProvider<<EVM as EvmTr>::Context, Output = InterpreterResult>, <EVM as EvmTr>::Instructions: InstructionProvider<Context = <EVM as EvmTr>::Context, InterpreterTypes = EthInterpreter>, EVM: EvmTr, ERROR: From<<<<EVM as EvmTr>::Context as ContextTr>::Db as Database>::Error> + From<PrecompileError> + FromStringError,

§

type Evm = EVM

§

type FrameInit = FrameInput

§

type FrameResult = FrameResult

§

type Error = ERROR