#pragma once #include "Project.h" #include "Testcases.h" #include #include namespace solidity::ui::project { class Manager { public: typedef std::vector> Projects; typedef std::deque ProjectCache; static Manager& Instance() { static Manager manager; return manager; } void openProject(std::string const& _arguments); [[nodiscard]] ProjectCache history(int _count = -1, std::string const& _search = "") const; [[nodiscard]] Projects const& projects() const; void render(); void load(std::string const& _filename); void save(std::string const& _filename); Testcases& testcases() { return m_testcases; } private: Projects m_openedProjects; ProjectCache m_historicalProjects; Testcases m_testcases; }; } // namespace solidity::ui::project