| 72 | } |
| 73 | |
| 74 | Rv<YAML::Node> |
| 75 | yaml_load(swoc::file::path const &path) |
| 76 | { |
| 77 | // static_assert(sizeof(YAML::Node) == sizeof(static_cast<Rv<YAML::Node>*>(nullptr)->_r)); |
| 78 | std::error_code ec; |
| 79 | std::string content = swoc::file::load(path, ec); |
| 80 | |
| 81 | if (ec) { |
| 82 | return Errata(S_ERROR, R"(Unable to load file "{}" - {}.)", path, ec); |
| 83 | } |
| 84 | |
| 85 | YAML::Node root; |
| 86 | try { |
| 87 | root = YAML::Load(content); |
| 88 | } catch (std::exception &ex) { |
| 89 | return Errata(S_ERROR, R"(YAML parsing of "{}" failed - {}.)", path, ex.what()); |
| 90 | } |
| 91 | |
| 92 | yaml_merge(root); |
| 93 | [[maybe_unused]] auto s1 = sizeof(Rv<YAML::Node>::result_type); |
| 94 | [[maybe_unused]] auto s2 = sizeof(YAML::Node); |
| 95 | static_assert(sizeof(Rv<YAML::Node>) > sizeof(YAML::Node)); |
| 96 | return root; |
| 97 | } |