revm_inspector/
inspect.rs1use 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}