| 597 | } |
| 598 | |
| 599 | swoc::Errata |
| 600 | Mod_query_filter::Case::parse_pair(Config &cfg, YAML::Node node, PairExpr &pair) |
| 601 | { |
| 602 | if (!node.IsMap()) { |
| 603 | return Errata(S_ERROR, "Element at {} is not an object as required.", node.Mark()); |
| 604 | } |
| 605 | |
| 606 | if (auto knode = node[PAIR_NAME]; knode) { |
| 607 | auto &&[expr, errata]{cfg.parse_expr(knode)}; |
| 608 | if (!errata.is_ok()) { |
| 609 | errata.note("While parsing expression for {}.", PAIR_NAME); |
| 610 | } |
| 611 | pair._name = std::move(expr); |
| 612 | } |
| 613 | |
| 614 | if (auto vnode = node[PAIR_VALUE]; vnode) { |
| 615 | auto &&[expr, errata]{cfg.parse_expr(vnode)}; |
| 616 | if (!errata.is_ok()) { |
| 617 | errata.note("While parsing expression for {}.", PAIR_VALUE); |
| 618 | } |
| 619 | pair._value = std::move(expr); |
| 620 | } |
| 621 | |
| 622 | return {}; |
| 623 | } |
| 624 | |
| 625 | Errata |
| 626 | Mod_query_filter::Case::pre_load(Config &cfg, YAML::Node cmp_node) |