未だに、わりとC++で書いてます。 以前から設定ファイル周りのライブラリをちゃんと作りたいと思っていました。 Jubatus含めて今までJSONベースでやっていましたが、コメントが書けなかったり、キーが文字列だったりというのがあって、YAMLにしたいなぁと。 いい加減どうにかしようと思って、エイヤでlibyamlのthin wrapperと、pficommonスタイルのcastを実装した、yamlcastというライブラリを作りました。 pficommonのjsoncastの代用です。 MITライセンスです。
yamlcastread-the-docsを知ったり、SphinxのC++ドメインを使ってみたかったりで、ひと通りread-the-docsにドキュメントも書いてみました。 世の中便利ですね。
使い方ですが、ドキュメントにある通り、まずYAMLドキュメントを読み込みます。
読み込んだら、yamlcast
struct User { int age; std::string name; templatevoid serialize(Ar& ar) { ar & MEMBER(age) & MEMBER(name); } }; User user = yamlcast::yaml_cast (*doc);
こんな感じです。
もともとpficommonのJSONにも同様なcastがあったのですが、エラーがわかりにくいという問題がありました。 libyamlは、各ノードが何行目何カラム目に対応しているかの情報があるので、それと合わせればだいたいどこに問題があるかわかるとおもいます。 まだ自分でもほとんど使ってませんが、使ってみたい方いたら感想など教えていただけると。
0 件のコメント:
コメントを投稿