aboutsummaryrefslogtreecommitdiff
path: root/src/framework
diff options
context:
space:
mode:
Diffstat (limited to 'src/framework')
-rw-r--r--src/framework/standard/args.rs17
-rw-r--r--src/framework/standard/mod.rs12
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,
});
}
}