[][src]Trait tari_common::configuration::loader::DefaultConfigLoader

pub trait DefaultConfigLoader: ConfigPath + Default + Serialize + for<'de> Deserialize<'de> {
    fn load_from(config: &Config) -> Result<Self, ConfigurationError> { ... }
}

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

Loading content...

Implementors

impl<C> DefaultConfigLoader for C where
    C: ConfigPath + Default + Serialize + for<'de> Deserialize<'de>, 
[src]

Loading content...