Generic config parsing utilities

This commit is contained in:
2025-08-15 22:48:40 -04:00
parent c55c9f6cd9
commit f890172431
2 changed files with 58 additions and 42 deletions

View File

@@ -40,6 +40,19 @@ public:
parse_toml_string(const std::string &toml_content);
private:
// Generic configuration parsing utilities
template <typename T>
static void parse_field(const auto &section, const std::string &field_name,
T &target);
template <typename Rep, typename Period>
static void parse_duration_field(const auto &section,
const std::string &field_name,
std::chrono::duration<Rep, Period> &target);
static void parse_section(const auto &toml_data,
const std::string &section_name, auto parse_func);
static void parse_server_config(const auto &toml_data, ServerConfig &config);
static void parse_commit_config(const auto &toml_data, CommitConfig &config);
static void parse_subscription_config(const auto &toml_data,