aboutsummaryrefslogtreecommitdiff
path: root/src/ext/framework/create_group.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext/framework/create_group.rs')
-rw-r--r--src/ext/framework/create_group.rs68
1 files changed, 0 insertions, 68 deletions
diff --git a/src/ext/framework/create_group.rs b/src/ext/framework/create_group.rs
deleted file mode 100644
index 03fc33e..0000000
--- a/src/ext/framework/create_group.rs
+++ /dev/null
@@ -1,68 +0,0 @@
-pub use ext::framework::command::{Command, CommandType, CommandGroup, CommandOrAlias};
-pub use ext::framework::create_command::CreateCommand;
-
-use std::default::Default;
-use std::sync::Arc;
-use ::client::Context;
-use ::model::Message;
-
-#[derive(Default)]
-pub struct CreateGroup(pub CommandGroup);
-
-/// Used to create command groups
-///
-/// # Examples
-///
-/// Create group named Information where all commands are prefixed with info,
-/// and add one command named "name". For example, if prefix is "~", we say "~info name"
-/// to call the "name" command.
-///
-/// ```rust,ignore
-/// framework.group("Information", |g| g
-/// .prefix("info")
-/// .command("name", |c| c
-/// .exec_str("Hakase")))
-/// ```
-impl CreateGroup {
- /// Adds a command to group.
- pub fn command<F>(mut self, command_name: &str, f: F) -> Self
- where F: FnOnce(CreateCommand) -> CreateCommand {
- let cmd = f(CreateCommand(Command::default())).0;
-
- for n in &cmd.aliases {
- if let Some(ref prefix) = self.0.prefix {
- self.0.commands.insert(format!("{} {}", prefix, n.to_owned()), CommandOrAlias::Alias(format!("{} {}", prefix, command_name.to_string())));
- } else {
- self.0.commands.insert(n.to_owned(), CommandOrAlias::Alias(command_name.to_string()));
- }
- }
-
- self.0.commands.insert(command_name.to_owned(), CommandOrAlias::Command(Arc::new(cmd)));
-
- self
- }
-
- /// Adds a command to group with simplified API.
- /// You can return Err(string) if there's an error.
- pub fn on<F>(mut self, command_name: &str, f: F) -> Self
- where F: Fn(&mut Context, &Message, Vec<String>) -> Result<(), String> + Send + Sync + 'static {
- let cmd = Arc::new(Command::new(f));
-
- self.0.commands.insert(command_name.to_owned(), CommandOrAlias::Command(cmd));
-
- self
- }
-
- /// If prefix is set, it will be required before all command names.
- /// For example, if bot prefix is "~" and group prefix is "image"
- /// we'd call a subcommand named "hibiki" by sending "~image hibiki".
- ///
- /// **Note**: serenity automatically puts a space after group prefix.
- ///
- /// **Note**: It's suggested to call this first when making a group.
- pub fn prefix(mut self, desc: &str) -> Self {
- self.0.prefix = Some(desc.to_owned());
-
- self
- }
-}