1 use serde_derive::{Deserialize, Serialize}; 2 3 use config::Config; 4 5 #[derive(Debug, Serialize, Deserialize)] 6 #[serde(default)] 7 pub struct Settings { 8 pub db_host: String, 9 } 10 11 impl Default for Settings { default() -> Self12 fn default() -> Self { 13 Self { 14 db_host: String::from("default"), 15 } 16 } 17 } 18 19 #[test] set_defaults()20fn set_defaults() { 21 let c = Config::default(); 22 let s: Settings = c.try_deserialize().expect("Deserialization failed"); 23 24 assert_eq!(s.db_host, "default"); 25 } 26 27 #[test] try_from_defaults()28fn try_from_defaults() { 29 let c = Config::try_from(&Settings::default()).expect("Serialization failed"); 30 let s: Settings = c.try_deserialize().expect("Deserialization failed"); 31 assert_eq!(s.db_host, "default"); 32 } 33