aboutsummaryrefslogtreecommitdiff
path: root/src/framework
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2018-08-02 16:26:06 +0200
committeracdenisSK <[email protected]>2018-08-02 16:26:06 +0200
commite5ea6c176ba96988efc612a8e14eea90f9c293e1 (patch)
tree4a03555427dcc24ba99ad2d90e7efdce2f253e15 /src/framework
parentUse `Args::full` in the framework example (diff)
downloadserenity-e5ea6c176ba96988efc612a8e14eea90f9c293e1.tar.xz
serenity-e5ea6c176ba96988efc612a8e14eea90f9c293e1.zip
Handle no delimiters
Diffstat (limited to 'src/framework')
-rw-r--r--src/framework/standard/args.rs19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/framework/standard/args.rs b/src/framework/standard/args.rs
index 0b915b6..1f97bc6 100644
--- a/src/framework/standard/args.rs
+++ b/src/framework/standard/args.rs
@@ -300,16 +300,21 @@ impl Args {
.flat_map(|s| s.chars())
.collect::<Vec<_>>();
- let mut lex = Lexer::new(message, &delims);
-
let mut args = Vec::new();
- while let Some(token) = lex.commit() {
- if token.kind == TokenKind::Delimiter {
- continue;
- }
+ // If there are no delimiters, then the only possible argument is the whole message.
+ if delims.is_empty() {
+ args.push(Token::new(TokenKind::Argument, &message[..], 0));
+ } else {
+ let mut lex = Lexer::new(message, &delims);
- args.push(token);
+ while let Some(token) = lex.commit() {
+ if token.kind == TokenKind::Delimiter {
+ continue;
+ }
+
+ args.push(token);
+ }
}
Args {