Rustの話。
serde
でJSONから変換したいstruct
があって、そこにbool
型のフィールドを定義したいとする。
false
なら
#[derive(Debug, Deserialize)]
struct S {
#[serde(default)]
is_xxx: bool,
}
というようにすれば、Default::default()
で勝手にfalse
になる。
Field attributes · Serde https://serde.rs/field-attrs.html#default
true
はひと手間
#[derive(Debug, Deserialize)]
struct S {
#[serde(default = "default_true")]
is_xxx: bool,
}
fn default_true() -> bool {
true
}
というように、文字列で関数を指定する必要がある。
そのうち
リテラルを直接書いたりとかできるようになったらいいなあ。
Support default literals · Issue #368 · serde-rs/serde https://github.com/serde-rs/serde/issues/368