From 9b0c053725e04c60eb7ddcfeb847be4189b3dbf6 Mon Sep 17 00:00:00 2001 From: Mei Boudreau Date: Thu, 12 Oct 2017 18:18:31 -0400 Subject: Add try_opt macro for substitute --- src/framework/standard/args.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src/framework') diff --git a/src/framework/standard/args.rs b/src/framework/standard/args.rs index 82a9e3f..7e3d579 100644 --- a/src/framework/standard/args.rs +++ b/src/framework/standard/args.rs @@ -18,7 +18,7 @@ impl From for Error { fn from(e: E) -> Self { Error::Parse(e) } -} +} impl StdError for Error { fn description(&self) -> &str { @@ -115,10 +115,7 @@ impl Args { let mut vec = Vec::with_capacity(i as usize); for _ in 0..i { - vec.push(match self.delimiter_split.shift() { - Some(x) => x, - None => return None, - }); + vec.push(try_opt!(self.delimiter_split.shift())); } Some(vec) @@ -164,8 +161,8 @@ impl Args { where T::Err: StdError { Iter::::new(&mut self).collect() } - - /// Provides an iterator of items: (`T: FromStr`) `Result`. + + /// Provides an iterator of items: (`T: FromStr`) `Result`. pub fn iter(&mut self) -> Iter where T::Err: StdError { Iter::new(self) } @@ -235,7 +232,7 @@ impl<'a, T: FromStr> Iter<'a, T> where T::Err: StdError { impl<'a, T: FromStr> Iterator for Iter<'a, T> where T::Err: StdError { type Item = Result; - + fn next(&mut self) -> Option { if self.args.is_empty() { None -- cgit v1.2.3