#ifndef COMPONENTS_SETTINGS_PARSER_H #define COMPONENTS_SETTINGS_PARSER_H #include "categories.hpp" #include #include namespace Settings { class SettingsFileParser { public: void loadSettingsFile(const std::filesystem::path& file, CategorySettingValueMap& settings, bool base64Encoded = false, bool overrideExisting = false); void saveSettingsFile(const std::filesystem::path& file, const CategorySettingValueMap& settings); private: /// Increment i until it longer points to a whitespace character /// in the string or has reached the end of the string. /// @return false if we have reached the end of the string bool skipWhiteSpace(size_t& i, std::string& str); [[noreturn]] void fail(const std::string& message); std::filesystem::path mFile; int mLine = 0; }; } #endif // _COMPONENTS_SETTINGS_PARSER_H