[−][src]Trait tari_common::configuration::loader::DefaultConfigLoader
Configuration loader based on ConfigPath selectors with Defaults
use config::Config; use serde::{Deserialize, Serialize}; use tari_common::{DefaultConfigLoader, NetworkConfigPath}; #[derive(Serialize, Deserialize)] struct MyNodeConfig { welcome_message: String, goodbye_message: String, } impl Default for MyNodeConfig { fn default() -> Self { Self { welcome_message: "welcome from tari".into(), goodbye_message: "bye bye".into(), } } } impl NetworkConfigPath for MyNodeConfig { fn main_key_prefix() -> &'static str { "my_node" } } let mut config = Config::new(); config.set("my_node.goodbye_message", "see you later"); let my_config = <MyNodeConfig as DefaultConfigLoader>::load_from(&config).unwrap(); assert_eq!(my_config.goodbye_message, "see you later".to_string()); assert_eq!(my_config.welcome_message, MyNodeConfig::default().welcome_message);
Provided methods
fn load_from(config: &Config) -> Result<Self, ConfigurationError>
[src]
Try to load configuration from supplied Config by main_key_prefix()
with values overloaded from overload_key_prefix()
.
Default values will be taken from Default impl for struct
Implementors
impl<C> DefaultConfigLoader for C where
C: ConfigPath + Default + Serialize + for<'de> Deserialize<'de>,
[src]
C: ConfigPath + Default + Serialize + for<'de> Deserialize<'de>,