#pragma once #include #include class Project { public: std::filesystem::path mRootPath; std::string mName; public: /// Load the project from a cplt_project.json file. static Project Load(const std::filesystem::path& path); /// Create a project with the given name in the given path. Note that the path should be a directory that will contain the project files once created. /// This function assumes the given directory will exist and is empty. static Project Create(std::string name, const std::filesystem::path& path); // Path to a *directory* that contains the project file. const std::filesystem::path& GetPath() const; const std::string& GetName() const; void SetName(std::string name); private: Project() = default; };