#ifndef CLRSYNC_CORE_IO_TOML_FILE_HPP #define CLRSYNC_CORE_IO_TOML_FILE_HPP #include #include #include #include namespace clrsync::core::io { class toml_file : public file { public: explicit toml_file(std::string path); Result parse() override; const std::string get_string_value(const std::string §ion, const std::string &key) const override; uint32_t get_uint_value(const std::string §ion, const std::string &key) const override; uint32_t get_bool_value(const std::string §ion, const std::string &key) const override; std::map get_table(const std::string §ion_path) const override; void insert_or_update_value(const std::string §ion, const std::string &key, const value_type &value) override; void remove_section(const std::string §ion) override; Result save_file() override; private: toml::parse_result m_file{}; std::string m_path{}; std::vector split(const std::string &s, char delim) const; }; } // namespace clrsync::core::io #endif