This crate implements the parsing for the SLRConfig format. Basic usage revolves
around the creation and use of the ConfigElement
type, like so:
#[macro_use]
extern crate slr_config;
use slr_config::{ConfigElement, FromElement};
use std::path::Path;
fn main()
{
let root = ConfigElement::from_str("key = value").unwrap();
assert_eq!(root.as_table().unwrap()["key"].as_value().unwrap(), "value");
let mut root = ConfigElement::new_table();
let val = ConfigElement::new_value("value");
root.insert("key", val);
assert_eq!(root.to_string(), "key = value\n");
slr_def!
{
struct TestSchema
{
key: u32 = 0,
arr: Vec<u32> = vec![]
}
}
let mut schema = TestSchema::new();
schema.from_element(&ConfigElement::from_str("key = 5, arr = [1, 2]").unwrap(), None).unwrap();
assert_eq!(schema.key, 5);
assert_eq!(schema.arr.len(), 2);
assert_eq!(schema.arr[0], 1);
assert_eq!(schema.arr[1], 2);
}