43 [](
const std::string& field,
const std::string_view& value,
const std::string& default_val)
45 std::cerr <<
"!! Warning: Invalid value '" << value <<
"' detected for field '" << field
46 <<
"'. Using default value '" << default_val <<
"'." << std::endl;
60 auto handle_bool_prop = [&](
const std::string_view& value,
const std::string& field,
61 bool default_val) ->
bool
65 reportWarning(field, value, default_val ?
"true" :
"false");
69 std::string value_lower;
70 value_lower.reserve(value.size());
73 value_lower += std::tolower(c);
76 if (value_lower ==
"true" || value_lower ==
"1" || value_lower ==
"yes")
80 if (value_lower ==
"false" || value_lower ==
"0" || value_lower ==
"no")
85 reportWarning(field, value, default_val ?
"true" :
"false");
89 const std::unordered_map<std::string, std::pair<bool&, bool>> field_map = {
93 for (
const auto& [field, field_info] : field_map)
95 const auto& [field_ref, default_val] = field_info;
97 field_ref = handle_bool_prop(value, field, default_val);
auto parseProps() -> GlobalProps
Parses the global properties from the TOML configuration.
Definition properties.hpp:28
auto parseTOMLField(string parent, string field) -> string_view
Parses a string field from the TOML configuration.
Definition toml_parser.hpp:144