#ifndef CLRSYNC_CORE_IO_FILE_HPP #define CLRSYNC_CORE_IO_FILE_HPP #include #include #include #include #include using value_type = std::variant; namespace clrsync::core::io { class file { public: file() = default; file(std::string path) {}; virtual ~file() = default; virtual Result parse() { return Ok(); }; virtual const std::string get_string_value(const std::string §ion, const std::string &key) const { return {}; } virtual uint32_t get_uint_value(const std::string §ion, const std::string &key) const { return {}; } virtual uint32_t get_bool_value(const std::string §ion, const std::string &key) const { return {}; } virtual std::map get_table(const std::string §ion_path) const { return {}; } virtual void set_value(const std::string §ion, const std::string &key, const value_type &value) { insert_or_update_value(section, key, value); } virtual void insert_or_update_value(const std::string §ion, const std::string &key, const value_type &value) {}; virtual void remove_section(const std::string §ion) {}; virtual Result save_file() { return Ok(); }; }; } // namespace clrsync::core::io #endif