#ifndef ARE_INCLUDE_UTILS_CONFIG_H #define ARE_INCLUDE_UTILS_CONFIG_H #include #include namespace are { /* * @brief Configuration manager for loading engine settings * @note This module should be implemented by the user */ class Config { public: /* * @brief Load configuration from file * @param path Configuration file path * @return True if loading succeeded */ static bool load(const std::string &path); /* * @brief Save configuration to file * @param path Configuration file path * @return True if saving succeeded */ static bool save(const std::string &path); /* * @brief Get string value * @param key Configuration key * @param default_value Default value if key not found * @return Configuration value */ static std::string get_string(const std::string &key, const std::string &default_value = ""); /* * @brief Get integer value * @param key Configuration key * @param default_value Default value if key not found * @return Configuration value */ static int get_int(const std::string &key, int default_value = 0); /* * @brief Get float value * @param key Configuration key * @param default_value Default value if key not found * @return Configuration value */ static float get_float(const std::string &key, float default_value = 0.0f); /* * @brief Get boolean value * @param key Configuration key * @param default_value Default value if key not found * @return Configuration value */ static bool get_bool(const std::string &key, bool default_value = false); /* * @brief Set string value * @param key Configuration key * @param value Configuration value */ static void set_string(const std::string &key, const std::string &value); /* * @brief Set integer value * @param key Configuration key * @param value Configuration value */ static void set_int(const std::string &key, int value); /* * @brief Set float value * @param key Configuration key * @param value Configuration value */ static void set_float(const std::string &key, float value); /* * @brief Set boolean value * @param key Configuration key * @param value Configuration value */ static void set_bool(const std::string &key, bool value); }; } // namespace are #endif // ARE_INCLUDE_UTILS_CONFIG_H