aboutsummaryrefslogtreecommitdiff
path: root/src/framework/mod.rs
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-08-16 22:24:43 +0200
committeracdenisSK <[email protected]>2017-08-16 22:25:30 +0200
commit005437f56869e846ff677b6516605def0c4de7bc (patch)
tree8059c36c4564cafcd6effe086daa4c7ebe6d0218 /src/framework/mod.rs
parenta little for-loop to iterator change (diff)
downloadserenity-005437f56869e846ff677b6516605def0c4de7bc.tar.xz
serenity-005437f56869e846ff677b6516605def0c4de7bc.zip
Provide the args to the checks
Diffstat (limited to 'src/framework/mod.rs')
-rw-r--r--src/framework/mod.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/framework/mod.rs b/src/framework/mod.rs
index 69b0de8..c5cfb90 100644
--- a/src/framework/mod.rs
+++ b/src/framework/mod.rs
@@ -505,7 +505,7 @@ impl BuiltinFramework {
mut context: &mut Context,
message: &Message,
command: &Arc<Command>,
- args: usize,
+ args: &[String],
to_check: &str,
built: &str)
-> Option<DispatchError> {
@@ -539,20 +539,22 @@ impl BuiltinFramework {
}
}
+ let arg_len = args.len();
+
if let Some(x) = command.min_args {
- if args < x as usize {
+ if arg_len < x as usize {
return Some(DispatchError::NotEnoughArguments {
min: x,
- given: args,
+ given: arg_len,
});
}
}
if let Some(x) = command.max_args {
- if args > x as usize {
+ if arg_len > x as usize {
return Some(DispatchError::TooManyArguments {
max: x,
- given: args,
+ given: arg_len,
});
}
}
@@ -584,7 +586,7 @@ impl BuiltinFramework {
} else if !command
.checks
.iter()
- .all(|check| (check)(&mut context, message, command)) {
+ .all(|check| (check)(&mut context, message, args, command)) {
Some(DispatchError::CheckFailed)
} else if self.configuration
.blocked_users
@@ -956,7 +958,7 @@ impl ::Framework for BuiltinFramework {
&mut context,
&message,
&command,
- args.len(),
+ &args,
&to_check,
&built,
) {