2 changed files with 30 additions and 29 deletions
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
use std::str::FromStr; |
||||
|
||||
pub struct Args<'a> { |
||||
args: &'a Vec<String>, |
||||
} |
||||
|
||||
impl<'a> Args<'a> { |
||||
pub fn new(args: &'a Vec<String>) -> Args { |
||||
Args { args } |
||||
} |
||||
pub fn get_str(&self, index: usize, def: &'a str) -> &'a str { |
||||
match self.args.get(index) { |
||||
Some(ret) => ret, |
||||
None => def, |
||||
} |
||||
} |
||||
pub fn get<T: FromStr>(&self, index: usize, def: T) -> T { |
||||
match self.args.get(index) { |
||||
Some(ret) => match ret.parse::<T>() { |
||||
Ok(ret) => ret, |
||||
Err(_) => def, // or panic
|
||||
}, |
||||
None => def, |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
Loading…
Reference in new issue