diff options
| author | acdenisSK <[email protected]> | 2018-08-02 16:26:06 +0200 |
|---|---|---|
| committer | acdenisSK <[email protected]> | 2018-08-02 16:26:06 +0200 |
| commit | e5ea6c176ba96988efc612a8e14eea90f9c293e1 (patch) | |
| tree | 4a03555427dcc24ba99ad2d90e7efdce2f253e15 /src/framework | |
| parent | Use `Args::full` in the framework example (diff) | |
| download | serenity-e5ea6c176ba96988efc612a8e14eea90f9c293e1.tar.xz serenity-e5ea6c176ba96988efc612a8e14eea90f9c293e1.zip | |
Handle no delimiters
Diffstat (limited to 'src/framework')
| -rw-r--r-- | src/framework/standard/args.rs | 19 |
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 { |