Struct toml_config::ConfigFactory
[−]
[src]
pub struct ConfigFactory;
Implements helper functions for loading TOML files into a structure
Examples
To load a file into a Config struct, use ConfigFactory
.
Either rustc_serialize
or serde
can be used for serialization.
Example using rustc_serialize
extern crate rustc_serialize; extern crate toml_config; use rustc_serialize::{Encodable, Decodable}; use std::path::Path; use toml_config::ConfigFactory; #[derive(RustcEncodable, RustcDecodable)] struct Config { nested: NestedConfig } // Defaults will be used for missing/invalid configurations in the TOML config file impl Default for Config { fn default() -> Config { Config { nested: NestedConfig::default() } } } #[derive(RustcEncodable, RustcDecodable)] struct NestedConfig { value: String, values: Vec<u16> } impl Default for NestedConfig { fn default() -> NestedConfig { NestedConfig { value: "default".to_owned(), values: vec![0, 0, 0] } } } /* config.toml: * [nested] * value = "test" * values = [1, 2, 3] */ let config: Config = ConfigFactory::load(Path::new("config.toml")); assert_eq!(config.nested.value, "test"); assert_eq!(config.nested.values, vec![1, 2, 3]);
Example using serde
extern crate serde; extern crate toml_config; use serde::{Serialize, Deserialize}; use std::path::Path; use toml_config::ConfigFactory; #[derive(Serialize, Deserialize)] struct Config { nested: NestedConfig } // Defaults will be used for missing/invalid configurations in the TOML config file impl Default for Config { fn default() -> Config { Config { nested: NestedConfig::default() } } } #[derive(Serialize, Deserialize)] struct NestedConfig { value: String, values: Vec<u16> } impl Default for NestedConfig { fn default() -> NestedConfig { NestedConfig { value: "default".to_owned(), values: vec![0, 0, 0] } } } /* config.toml: * [nested] * value = "test" * values = [1, 2, 3] */ let config: Config = ConfigFactory::load(Path::new("config.toml")); assert_eq!(config.nested.value, "test"); assert_eq!(config.nested.values, vec![1, 2, 3]);
Methods
impl ConfigFactory
[src]
fn load<T>(path: &Path) -> T where T: Encodable + Decodable + Default
Loads a TOML file and decodes it into a target structure, using default values for missing or invalid file configurations
fn decode<T>(toml_table: Table) -> T where T: Encodable + Decodable + Default
Decodes a TOML table into a target structure, using default values for missing or invalid configurations