#pragma once #include "Types.hpp" #include #include class Event { public: Event() = delete; explicit Event(EventId type) : mType(type) {} template void SetParam(EventId id, T value) { mData[id] = value; } template T GetParam(EventId id) { return std::any_cast(mData[id]); } EventId GetType() const { return mType; } private: EventId mType{}; std::unordered_map mData{}; };