У меня есть структура Rust, которую я могу десериализовать:
pub struct ProcessReference {
pub alias: Name,
pub source: String,
#[serde(rename = "input")]
pub initializations: Option<HashMap<String, JsonValue>>,
}
где input
не является обязательным. Это принимает форматы TOML:
[[process]]
alias = "other"
source = "other.toml"
or
[[process]]
alias = "other"
source = "other.toml"
input.input1 = 1
Я хотел бы, чтобы input
можно было расширить вторым значением, а не только JsonValue
, чтобы его также можно было десериализовать:
[[process]]
alias = "other"
source = "other.toml"
input.input1 = {1, true}
аналогично тому, что используется Cargo для зависимостей:
[dependencies]
flowrlib = { path = "../flowrlib", version = "~0.7.0" }
yaml-rust = "~0.3.5"
Как я могу выразить это в Serde?
{1, true}
? Это даже не похоже на действительный TOML. - person Shepmaster   schedule 20.03.2019