diff options
| author | acdenisSK <[email protected]> | 2018-07-19 11:05:01 +0200 |
|---|---|---|
| committer | acdenisSK <[email protected]> | 2018-07-19 11:05:01 +0200 |
| commit | d56b0b50e24dc57f3f804a392743804ac76ea9a8 (patch) | |
| tree | e806f456e1622b24bebe6720ff16e0e71df8743a /src/framework | |
| parent | Fix some clippy lints (diff) | |
| download | serenity-d56b0b50e24dc57f3f804a392743804ac76ea9a8.tar.xz serenity-d56b0b50e24dc57f3f804a392743804ac76ea9a8.zip | |
Use an `Option` to denote end
Diffstat (limited to 'src/framework')
| -rw-r--r-- | src/framework/standard/args.rs | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/src/framework/standard/args.rs b/src/framework/standard/args.rs index d72537c..17ee460 100644 --- a/src/framework/standard/args.rs +++ b/src/framework/standard/args.rs @@ -85,7 +85,6 @@ enum TokenKind { Delimiter, Argument, QuotedArgument, - Eof, } #[derive(Debug)] @@ -99,14 +98,6 @@ impl<'a> Token<'a> { fn new(kind: TokenKind, lit: &'a str, pos: usize) -> Self { Token { kind, lit, pos } } - - fn empty() -> Self { - Token { - kind: TokenKind::Eof, - lit: "", - pos: !0, - } - } } #[derive(Debug, Clone)] @@ -170,15 +161,15 @@ impl<'a> Lexer<'a> { Some(()) } - fn commit(&mut self) -> Token<'a> { + fn commit(&mut self) -> Option<Token<'a>> { if self.at_end() { - return Token::empty(); + return None; } if self.current().unwrap().contains(self.delims) { let start = self.offset; self.next(); - return Token::new(TokenKind::Delimiter, &self.msg[start..self.offset], start); + return Some(Token::new(TokenKind::Delimiter, &self.msg[start..self.offset], start)); } if self.current().unwrap() == "\"" { @@ -193,12 +184,12 @@ impl<'a> Lexer<'a> { let end = self.offset; - return if self.at_end() && &self.msg[find_start(self.msg, end).unwrap()..end] != "\"" { + return Some(if self.at_end() && &self.msg[find_start(self.msg, end).unwrap()..end] != "\"" { // We're missing an end quote. View this as a normal argument. Token::new(TokenKind::Argument, &self.msg[start..], start) } else { Token::new(TokenKind::QuotedArgument, &self.msg[start..end], start) - }; + }); } let start = self.offset; @@ -207,7 +198,7 @@ impl<'a> Lexer<'a> { self.next(); } - Token::new(TokenKind::Argument, &self.msg[start..self.offset], start) + Some(Token::new(TokenKind::Argument, &self.msg[start..self.offset], start)) } } @@ -342,9 +333,7 @@ impl Args { let mut args = Vec::new(); - while !lex.at_end() { - let token = lex.commit(); - + while let Some(token) = lex.commit() { if token.kind == TokenKind::Delimiter { continue; } |