6void check_allowed(param_t param, key_vec_t &missing_keys, key_vec_t &invalid_keys,
7 std::vector<param_t> allowed, option_t option) {
9 if (!std::any_of(allowed.begin(), allowed.end(), [&](
const auto i){return i==param;})) {
11 std::vector<std::string> invalid_temp;
14 invalid_temp.push_back(x);
18 invalid_keys.push_back(invalid_temp);
23void check_range(param_t param, key_vec_t &missing_keys, key_vec_t &invalid_keys,
24 std::vector<param_t> min_val, std::vector<param_t> max_val,
30 if (!min_val.empty()) {
31 if (param < min_val.at(0)) {
37 if (!max_val.empty()) {
38 if (param > max_val.at(0)) {
46 std::vector<std::string> invalid_temp;
49 invalid_temp.push_back(x);
53 invalid_keys.push_back(invalid_temp);
59 key_vec_t &invalid_keys, option_t option, std::vector<param_t> allowed={},
60 std::vector<param_t> min_val={}, std::vector<param_t> max_val={}) {
62 std::shared_ptr<spdlog::logger> logger = spdlog::get(
"citlali_logger");
66 if (config.template has_typed<param_t>(option_t(option))) {
68 param = config.template get_typed<param_t>(option_t(option));
71 if (!allowed.empty()) {
72 check_allowed(param, missing_keys, invalid_keys, allowed, option);
76 if (!min_val.empty() || !max_val.empty()) {
77 check_range(param, missing_keys, invalid_keys, min_val, max_val, option);
80 logger->debug(
"got {} from config",option);
85 std::vector<std::string> missing_temp;
88 missing_temp.push_back(x);
91 missing_keys.push_back(missing_temp);
94 catch (YAML::TypedBadConversion<param_t>) {
96 std::vector<std::string> invalid_temp;
99 invalid_temp.push_back(x);
103 invalid_keys.push_back(invalid_temp);
105 catch (YAML::InvalidNode) {
107 std::vector<std::string> invalid_temp;
110 invalid_temp.push_back(x);
114 invalid_keys.push_back(invalid_temp);
void get_config_value(config_t config, param_t ¶m, key_vec_t &missing_keys, key_vec_t &invalid_keys, option_t option, std::vector< param_t > allowed={}, std::vector< param_t > min_val={}, std::vector< param_t > max_val={})
Definition config.h:58
void check_range(param_t param, key_vec_t &missing_keys, key_vec_t &invalid_keys, std::vector< param_t > min_val, std::vector< param_t > max_val, option_t option)
Definition config.h:23
void check_allowed(param_t param, key_vec_t &missing_keys, key_vec_t &invalid_keys, std::vector< param_t > allowed, option_t option)
Definition config.h:6