aboutsummaryrefslogtreecommitdiff
path: root/src/framework
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-12-18 16:24:22 +0100
committeracdenisSK <[email protected]>2017-12-18 16:24:43 +0100
commit2c9b6824a7bf6231a08d5c5465c1db5417ea5d8a (patch)
treed26c82d459a964ab761461f5a640afe41204a147 /src/framework
parentFix `Guild` deser without `system_channel_id` (diff)
downloadserenity-2c9b6824a7bf6231a08d5c5465c1db5417ea5d8a.tar.xz
serenity-2c9b6824a7bf6231a08d5c5465c1db5417ea5d8a.zip
Add a special `len` to `Args`
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,
});
}
}