#pragma once #include "deimos/core/base.h" #include "deimos/core/id_name.h" namespace deimos { class ApiRegistry { public: ApiRegistry() = default; deimos_NO_COPY_MOVE(ApiRegistry); virtual ~ApiRegistry() = default; virtual void Set(const IdName&, void* impl) = 0; template void Set(Api* impl) { Set(Api::kApiName, impl); } }; ApiRegistry* InitializeGlobalApiRegistry(); } // namespace deimos