Я пытаюсь загрузить файл Toml с помощью Serde, он содержит несколько логических значений, я хочу установить их по умолчанию на false, если они не найдены в текстовом файле.
Моя реализация в настоящее время:
#[derive(serde::Deserialize, serde::Serialize)]
#[serde(rename_all="PascalCase")]
pub struct SomeConfigStruct {
// This one *must* exist, non optional, non defaulted.
class_name : String,
#[serde(default = "default_boolean")]
parent_in_constructor : bool,
#[serde(default = "default_boolean")]
set_user_texts : bool,
#[serde(default = "default_boolean")]
singleton : bool,
#[serde(default = "default_boolean")]
use_enum_types : bool,
}
Как мне сделать что-то в строках:
#[derive(serde::Deserialize, serde::Serialize)]
#[serde(rename_all="PascalCase")]
pub struct SomeConfigStruct {
class_name : String,
#[serde(type = bool, default = "default_boolean")]
parent_in_constructor : bool,
set_user_texts : bool,
singleton : bool,
use_enum_types : bool,
}
[править, новый член в Структуре, чтобы лучше проиллюстрировать то, что мне нужно.]