revm_handler_interface/
handler.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
use crate::{ExecutionHandler, PostExecutionHandler, PreExecutionHandler, ValidationHandler};

pub trait Handler {
    type Validation: ValidationHandler;
    type PreExecution: PreExecutionHandler;
    type Execution: ExecutionHandler;
    type PostExecution: PostExecutionHandler;

    fn validation(&mut self) -> &mut Self::Validation;
    fn pre_execution(&mut self) -> &mut Self::PreExecution;
    fn execution(&mut self) -> &mut Self::Execution;
    fn post_execution(&mut self) -> &mut Self::PostExecution;
}