omitzeroをつけると読み込めない
自前のコマンドの簡単な設定をtomlで書いていたんですが、omitzero
を付けた場合に、読み込み(decode)の際に、値を読み込んでくれない事態に遭遇しました。
こういう構造体に
type Config struct {
Text string `toml:"x_text"`
Number int `toml:"number,omitzero"`
}
このファイルを
x_text = "text message."
number = 10
読み込ませてもConfig.Number
は0
になってしまいます。
原因はライブラリのバグですが・・・
結果としてはライブラリのバグでした。
omitzero
を付けなければ、正常に読み込めるため、Issue/PullRequestを探すと、同様の問題に遭遇した方から修正が来てましたが、マージはされていませんでした。
どちらの修正でも、読み込めました。(他のtestも通ります)
https://github.com/BurntSushi/toml/pull/82
https://github.com/BurntSushi/toml/pull/90
このリポジトリ自体が2015/05から更新されていないようなので、自分でforkするかローカルのファイルを編集する、もしくは別のライブラリを探すことが必要です。