如果我有一个带有结构值的枚举,那么正确的TOML格式是什么?
假设我有:
假设我有:
#[derive(Deserialize, Clone)]
pub enum AOrB
{
A,
B {
b1: String,
b2: String
},
}
#[derive(Deserialize, Clone)]
pub struct Config
{
pub z: String,
pub a_or_b: AOrB
}
我尝试将一个字符串反序列化为Config
fn main()
{
// What should this be?
let s = r#"
z = "zzz"
[a_or_b.B]
b1 = "bbb"
b2 = "bbbb"
"#;
let c: Config = toml::from_str(s).unwrap();
}
我遇到了错误:枚举表必须恰好包含一个表",键:["a_or_b"]
。我尝试了一些不同形式的s
,但都没有成功。写s
的正确方式是什么?
(我需要b1和b2在不同行。)
更新:看起来如果我将它写成内联样式,就没有问题:
z = "zzz"
a_or_b = { B = { b1 = "bbb", b2 = "bbbb" } }
然而,我确实需要这些字段在不同的行上,因为在我的实际情况中,它们的数量更多且值很长...