1. 错误来源
我声明了如下结构 License:
pub struct License {
pub file_type: String,pub version: String,pub license_id: Byte16,pub information: String,pub features: Vec<Feature>,pub signature: Byte16,
}
在保存数据之前,我把这个结构序列化,转换成一个字符串:
let s = match toml::to_string(&license);
很不幸,这里抛出了错误,错误信息是 ValueAfterTable。
2. 原因
原因是 pub features: Vec, 是一个 Table,其后面不应该在定义其他数值。修改成下面的样子就没问题了:
pub struct License {
pub file_type: String,pub version: String,pub license_id: Byte16,pub information: String,pub signature: Byte16,pub features: Vec<Feature>,
}
也就是说,toml 只能包含一个 Table 项。如何支持多个 Table,这个需要好好再研究一下。