如果我有一个布局未知的 JSON 值,我可以使用以下命令对其进行反序列serde_json
化serde_json::Value
:
#[derive(Deserialize)]
struct Foo {
unknown: serde_json::Value,
}
同样,我可以对 CBOR 做同样的事情:
#[derive(Deserialize)]
struct Foo {
unknown: serde_cbor::Value,
}
但是,如果我想要一个可以从 JSON或CBOR 加载的单一数据结构怎么办。我实际上想要这个:
enum UnknownValue {
Json(serde_json::Value),
Cbor(serde_cbor::Value),
}
#[derive(Deserialize)]
struct Foo {
unknown: UnknownValue,
}
有没有办法做到这一点,以便我可以将 JSON 或 CBOR 反序列化到这个结构中?