我有一个像下面这样的枚举
#[serde(rename_all="snake_case")]
pub enum Flag {
One,
Two,
Three { value: Option<Decimal>}
}
我想匹配以下 JSON 表示形式
{"flag":"one"} // Working fine
{"flag":"two"} // Working fine
{"flag":{"three":{"value":###}} // Working fine -> Three { value: Some(###) }
{"flag":"three"} // not working, desired result -> Three { value: None }
我怎样才能得到这样的行为?
我已经尝试过了:
#[serde(default)]
在变体上,但这只会匹配{"flag":{"three":{}}}
#[serde(untagged)]
在变体上,但这适用于完整枚举ThreeNone
具有#[serde(rename="Three")]
属性的另一种变体
请帮忙