#pragma once #include #include #include #include #include #include namespace psprecomp { struct NidSymbol { std::string library; std::uint32_t nid{}; std::string name; }; class NidRegistry { public: NidRegistry(); void add(std::string library, std::uint32_t nid, std::string name); void load_csv(const std::filesystem::path &path); [[nodiscard]] std::optional resolve(const std::string &library, std::uint32_t nid) const; [[nodiscard]] std::vector all() const; private: [[nodiscard]] static std::string key(const std::string &library, std::uint32_t nid); std::unordered_map symbols_; }; } // namespace psprecomp