ExecutionIdGetterInterface & execution_id_manager
const MemoryValue & unconstrained_get(MemoryAddress index) const
void validate_tag(const MemoryValue &value) const
EventEmitterInterface< MemoryEvent > & events
Memory(uint16_t space_id, RangeCheckInterface &range_check, ExecutionIdGetterInterface &execution_id_manager, EventEmitterInterface< MemoryEvent > &event_emitter)
const MemoryValue & get(MemoryAddress index) const override
uint16_t get_space_id() const override
RangeCheckInterface & range_check
unordered_flat_map< MemoryAddress, MemoryValue > memory
void set(MemoryAddress index, MemoryValue value) override
MemoryProvider(RangeCheckInterface &range_check, ExecutionIdGetterInterface &execution_id_manager, EventEmitterInterface< MemoryEvent > &event_emitter)
ExecutionIdGetterInterface & execution_id_manager
std::unique_ptr< MemoryInterface > make_memory(uint16_t space_id) override
EventEmitterInterface< MemoryEvent > & events
RangeCheckInterface & range_check
EventEmitter< DataCopyEvent > event_emitter
::ankerl::unordered_dense::map< Key, T > unordered_flat_map
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept