use crate::state::EvmState;
pub trait OnStateHook: Send + 'static {
fn on_state(&mut self, state: &EvmState);
}
impl<F> OnStateHook for F
where
F: FnMut(&EvmState) + Send + 'static,
{
fn on_state(&mut self, state: &EvmState) {
self(state)
}
}
#[derive(Default, Debug, Clone)]
#[non_exhaustive]
pub struct NoopHook;
impl OnStateHook for NoopHook {
fn on_state(&mut self, _state: &EvmState) {}
}