revm_inspector/
inspect.rs

1use context::setters::ContextSetters;
2use handler::evm::{ExecuteCommitEvm, ExecuteEvm};
3
4pub trait InspectEvm: ExecuteEvm {
5    type Inspector;
6
7    fn set_inspector(&mut self, inspector: Self::Inspector);
8
9    fn inspect_previous(&mut self) -> Self::Output;
10
11    fn inspect_previous_with_inspector(&mut self, inspector: Self::Inspector) -> Self::Output {
12        self.set_inspector(inspector);
13        self.inspect_previous()
14    }
15
16    fn inspect_previous_with_tx(&mut self, tx: <Self as ContextSetters>::Tx) -> Self::Output {
17        self.set_tx(tx);
18        self.inspect_previous()
19    }
20
21    fn inspect(
22        &mut self,
23        tx: <Self as ContextSetters>::Tx,
24        inspector: Self::Inspector,
25    ) -> Self::Output {
26        self.set_tx(tx);
27        self.inspect_previous_with_inspector(inspector)
28    }
29}
30
31pub trait InspectCommitEvm: InspectEvm + ExecuteCommitEvm {
32    fn inspect_commit_previous(&mut self) -> Self::CommitOutput;
33
34    fn inspect_commit_previous_with_inspector(
35        &mut self,
36        inspector: Self::Inspector,
37    ) -> Self::CommitOutput {
38        self.set_inspector(inspector);
39        self.inspect_commit_previous()
40    }
41
42    fn inspect_commit(
43        &mut self,
44        tx: <Self as ContextSetters>::Tx,
45        inspector: Self::Inspector,
46    ) -> Self::CommitOutput {
47        self.set_tx(tx);
48        self.inspect_commit_previous_with_inspector(inspector)
49    }
50}