#pragma once #include #include class Project { public: Project() = default; Project(const std::string& name): Name(name){} ~Project() { std::cout << "Unloading project..." << Name << std::endl; } void setName(std::string& name) { Name = name; } const std::string& GetName()const { return Name; } void setProjectDirectory(std::string& path) { ProjectDirectory = std::filesystem::path(path); } const std::filesystem::path GetProjectDirectory() { return ProjectDirectory; } static void SaveProject(std::filesystem::path path, Project& project); static void LoadProject(std::filesystem::path path, std::shared_ptr& project); private: std::string Name; std::filesystem::path ProjectDirectory; };