rarg 0.1.0

Cli argument parsing
Documentation
use std::collections::HashMap;

macro_rules! cfg {
    [$( {$arg:literal, $var:ident, $t:ty  $(,)? } $(,)? )* ] => {
        struct Config {
            args: HashMap<String,String>,
        }

        impl Config {
            $(
                pub fn $var (&self) -> Option<$t> {
                    self.args.get($arg).map(|e| e.parse::<$t>().unwrap())
                }
            )*
        }
    };
}

cfg! [
    { "test", test, i32 },
];

fn main() {
    let mut map = HashMap::new();
    map.insert("test".to_string(),"12".to_string());
    let cfg = Config{
        args: map,
    };

    println!("{}", cfg.test().unwrap());
}