aboutsummaryrefslogtreecommitdiff
path: root/src/framework
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2018-07-19 11:05:01 +0200
committeracdenisSK <[email protected]>2018-07-19 11:05:01 +0200
commitd56b0b50e24dc57f3f804a392743804ac76ea9a8 (patch)
treee806f456e1622b24bebe6720ff16e0e71df8743a /src/framework
parentFix some clippy lints (diff)
downloadserenity-d56b0b50e24dc57f3f804a392743804ac76ea9a8.tar.xz
serenity-d56b0b50e24dc57f3f804a392743804ac76ea9a8.zip
Use an `Option` to denote end
Diffstat (limited to 'src/framework')
-rw-r--r--src/framework/standard/args.rs25
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;
}