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()20 fn 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()28 fn 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