#pragma once #include #include #include #include #include namespace interfaces { class JsonStorage { public: BOOST_STRONG_TYPEDEF(std::filesystem::path, FilePath) BOOST_STRONG_TYPEDEF(std::filesystem::path, DirectoryPath) virtual ~JsonStorage() = default; virtual void store(const FilePath& subPath, const nlohmann::json& data) = 0; virtual bool remove(const FilePath& subPath) = 0; virtual bool exist(const FilePath& path) const = 0; virtual std::optional load(const FilePath& subPath) const = 0; virtual std::vector list() const = 0; }; } // namespace interfaces