use serde::{Serialize, Deserialize, Deserializer}; use std::collections::HashMap; fn default_config_resource() -> String { String::from("") } fn default_sitewith() -> Vec { Vec::new() } fn default_config_tpls() -> HashMap { HashMap::new() } #[derive(Debug, Clone, Serialize, Deserialize, Default)] pub struct ReqSettings { pub name: String, pub author: String, pub fullname: String, pub desc: String, #[serde(default = "default_config_resource")] pub url: String, #[serde(default = "default_config_resource")] pub trace_url: String, #[serde(default = "default_config_resource")] pub title: String, #[serde(default = "default_config_resource")] pub subtitle: String, #[serde(default = "default_config_resource")] pub pagetitle: String, #[serde(default = "default_config_tpls")] pub tpls: HashMap, #[serde(default = "default_config_resource")] pub sid: String, #[serde(default = "default_sitewith")] pub sitewith: Vec, }