yaml-cpp 节点诊断有意义的错误

yaml-cpp node diagnostics for meaningful errors

我正在使用 yaml-cpp 来解析像

这样的文件
Some Stuff
 - ...

Elements: 
 - Type: Fruit
   Name: A sweet sweet apple
   Size: small

 - Type: Pet
   Name: clawbeast
   Danger: Low

 - ...

More Stuff
 - ...

"Type" 有一组预定义的有效值。当我遇到无效的类型时,我如何给用户指出有意义的诊断?

理想情况下,我会输出类似

的内容

Invalid Type "Ratzupaltuff" in config.yml line 789

Invalid Value "Ratzupaltuff" in config.yml for ... / Elements / Type

YAML::Node 提供了哪些信息?

YAML::Node#Mark() returns 节点的位置,文件中的位置,或 line/column.