diff options
| author | acdenisSK <[email protected]> | 2017-12-18 16:24:22 +0100 |
|---|---|---|
| committer | acdenisSK <[email protected]> | 2017-12-18 16:24:43 +0100 |
| commit | 2c9b6824a7bf6231a08d5c5465c1db5417ea5d8a (patch) | |
| tree | d26c82d459a964ab761461f5a640afe41204a147 /src/framework | |
| parent | Fix `Guild` deser without `system_channel_id` (diff) | |
| download | serenity-2c9b6824a7bf6231a08d5c5465c1db5417ea5d8a.tar.xz serenity-2c9b6824a7bf6231a08d5c5465c1db5417ea5d8a.zip | |
Add a special `len` to `Args`
Diffstat (limited to 'src/framework')
| -rw-r--r-- | src/framework/standard/args.rs | 17 | ||||
| -rw-r--r-- | src/framework/standard/mod.rs | 12 |
2 files changed, 23 insertions, 6 deletions
diff --git a/src/framework/standard/args.rs b/src/framework/standard/args.rs index 6bc87bc..3c596a0 100644 --- a/src/framework/standard/args.rs +++ b/src/framework/standard/args.rs @@ -208,6 +208,23 @@ impl Args { /// ``` pub fn full(&self) -> &str { &self.message } + /// The amount of args. + /// + /// # Examples + /// + /// ```rust + /// use serenity::framework::standard::Args; + /// + /// let mut args = Args::new("42 69", &[" ".to_string()]); + /// + /// assert_eq!(args.len(), 2); // `2` because `["42", "69"]` + /// ``` + pub fn len(&self) -> usize { + // TODO: Handle quotes too. + + self.message.split(&self.delimiter).count() + } + /// Skips if there's a first element, but also returns it. /// /// # Examples diff --git a/src/framework/standard/mod.rs b/src/framework/standard/mod.rs index 02de3c0..2e5fad0 100644 --- a/src/framework/standard/mod.rs +++ b/src/framework/standard/mod.rs @@ -513,22 +513,22 @@ impl StandardFramework { } } - let arg_len = args.len(); - + let len = args.len(); + if let Some(x) = command.min_args { - if arg_len < x as usize { + if len < x as usize { return Some(DispatchError::NotEnoughArguments { min: x, - given: arg_len, + given: len, }); } } if let Some(x) = command.max_args { - if arg_len > x as usize { + if len > x as usize { return Some(DispatchError::TooManyArguments { max: x, - given: arg_len, + given: len, }); } } |