std::unique_ptr< GasTrackerInterface > make_gas_tracker(GasEvent &gas_event, const Instruction &instruction, ContextInterface &context) override
std::unique_ptr< AddressingInterface > make_addressing(AddressingEvent &event) override
std::vector< std::unique_ptr< EventEmitterInterface< AddressingEvent > > > addressing_event_emitters
RangeCheckInterface & range_check
const InstructionInfoDBInterface & instruction_info_db
ExecutionComponentsProvider(RangeCheckInterface &range_check, const InstructionInfoDBInterface &instruction_info_db)
virtual std::unique_ptr< GasTrackerInterface > make_gas_tracker(GasEvent &gas_event, const Instruction &instruction, ContextInterface &context)=0
virtual std::unique_ptr< AddressingInterface > make_addressing(AddressingEvent &event)=0
virtual ~ExecutionComponentsProviderInterface()=default
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
simulation::PublicDataTreeReadWriteEvent event