| 56 | } |
| 57 | |
| 58 | void |
| 59 | Map::done() |
| 60 | { |
| 61 | if (!_bad && (_used_key.size() != _map.size())) { |
| 62 | std::string msg{(_map.size() - _used_key.size()) > 1 ? "keys " : "key "}; |
| 63 | bool first{true}; |
| 64 | |
| 65 | for (auto const &kv : _map) { |
| 66 | auto key = kv.first.as<std::string>(); |
| 67 | |
| 68 | if (std::find(_used_key.begin(), _used_key.end(), key) == _used_key.end()) { |
| 69 | if (!first) { |
| 70 | msg += ", "; |
| 71 | } |
| 72 | first = false; |
| 73 | msg += key; |
| 74 | } |
| 75 | } |
| 76 | throw YAML::ParserException(_map.Mark(), msg + " invalid in this map"); |
| 77 | } |
| 78 | } |
| 79 | |
| 80 | } // end namespace Yaml |
| 81 | } // end namespace ts |
no test coverage detected