| 53 | namespace { |
| 54 | |
| 55 | std::string FormatYamlErrorMessage(absl::string_view yaml, |
| 56 | absl::string_view error, |
| 57 | const YAML::Mark& mark) { |
| 58 | if (mark.is_null()) { |
| 59 | return std::string(error); |
| 60 | } |
| 61 | std::string message; |
| 62 | absl::StrAppend(&message, mark.line + 1, ":", mark.column + 1, ": ", error, |
| 63 | "\n|"); |
| 64 | size_t start = mark.pos - mark.column; |
| 65 | size_t end = yaml.find('\n', mark.pos); |
| 66 | if (end == std::string::npos) { |
| 67 | end = yaml.size(); |
| 68 | } |
| 69 | |
| 70 | absl::StrAppend(&message, yaml.substr(start, end - start), "\n|", |
| 71 | std::string(mark.column, ' '), "^"); |
| 72 | |
| 73 | return message; |
| 74 | } |
| 75 | |
| 76 | absl::StatusOr<YAML::Node> LoadYaml(const std::string& yaml) { |
| 77 | try { |
no test coverage detected