rust_command_opt/
lib.rs

1pub mod opt;
2
3#[cfg(test)]
4mod tests {
5    use super::opt::Opt;
6    #[test]
7    fn it_works() {
8        let opt = Opt::with(vec![
9            "-a".to_string(),
10            "hello".to_string(),
11            "-k".to_string(),
12            "-l".to_string(),
13            "-100".to_string(),
14            "-p".to_string(),
15            "100".to_string(),
16        ]);
17        match opt.get_opt(Opt::one("-a")) {
18            Some(v) => {
19                assert_eq!(v.one(), "hello"); 
20            },
21            None => {
22                panic!("-a should have hello.");
23            }
24        };
25        match opt.get_opt(Opt::one("-k")) {
26            Some(v) => {
27                assert_eq!(v.one(), ""); 
28            },
29            None => {
30                panic!("-k should have empty string");
31            }
32        };
33        match opt.get_opt(Opt::one("-l")) {
34            Some(v) => {
35                assert_eq!(v.one(), "-100"); 
36            },
37            None => {
38                panic!("-l should have -100");
39            }
40        };
41        match opt.get_opt(Opt::one("-p")) {
42            Some(v) => {
43                assert_eq!(v.one(), "100"); 
44            },
45            None => {
46                panic!("-p should have 100");
47            }
48        };
49        assert_eq!(opt.get_opt_short_with_default("-k", "ano").one(),"ano");
50    }
51}