cfx_executor/observer/
opcode_tracer.rsuse cfx_types::{Address, Space, H256, U256};
use cfx_vm_types::InterpreterInfo;
use impl_tools::autoimpl;
use impl_trait_for_tuples::impl_for_tuples;
#[impl_for_tuples(3)]
#[autoimpl(for<T: trait + ?Sized> &mut T)]
pub trait OpcodeTracer {
    fn do_trace_opcode(&self, _enabled: &mut bool) {}
    #[inline]
    fn initialize_interp(&mut self, gas_limit: U256) { let _ = gas_limit; }
    fn step(&mut self, interp: &dyn InterpreterInfo) { let _ = interp; }
    fn step_end(&mut self, interp: &dyn InterpreterInfo) { let _ = interp; }
    #[inline]
    fn log(&mut self, address: &Address, topics: &Vec<H256>, data: &[u8]) {
        let _ = address;
        let _ = topics;
        let _ = data;
    }
    #[inline]
    fn selfdestruct(
        &mut self, space: Space, contract: &Address, target: &Address,
        value: U256,
    ) {
        let _ = space;
        let _ = contract;
        let _ = target;
        let _ = value;
    }
}