当前位置: 代码迷 >> 综合 >> Rust: toml::to_string()函数错误——ValueAfterTable(Value After Table)
  详细解决方案

Rust: toml::to_string()函数错误——ValueAfterTable(Value After Table)

热度:66   发布时间:2023-12-12 15:23:38.0

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,这个需要好好再研究一下。

  相关解决方案