pub struct ConfigFactory;Expand description
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]);Implementations§
Auto Trait Implementations§
impl Freeze for ConfigFactory
impl RefUnwindSafe for ConfigFactory
impl Send for ConfigFactory
impl Sync for ConfigFactory
impl Unpin for ConfigFactory
impl UnwindSafe for ConfigFactory
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more