diff options
| author | seth <[email protected]> | 2024-04-20 02:31:40 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-04-19 22:31:40 -0400 |
| commit | 3d07413690c551d9f034c93af85ae8da5a495e14 (patch) | |
| tree | 517d2e053ebdeb9a3be0ffce6dec36cbc4ce316e /src/commands/mod.rs | |
| parent | 1b92b254bc64b356f5c59657d2f0acc767bb2964 (diff) | |
spring cleaning (#165)
* treewide: lightly refactor everything
* once_cell -> std::sync
* remove build.rs
we can get our target at runtime
* commands::copypasta: refactor selection
* drop owo_colors
* reactboard: always remove author from count
* commands: better handle behavior outside of guilds
* ci: garnix -> gha
* nix: drop flake-parts & pre-commit-hooks
* nix: fix rust flags in derivation
* add gha badge to readme
* ci: fail when format changes are made
* ci: only run on push to main
* nix: fix nil script
* nix: add libiconv to darwin deps
* ci: disable fail-fast
* nix: fix actionlint & static checks
* ci: add release gates
* nix: fix nil check again
* ci: give release gates unique names
* ci: only build static packages in docker workflow
* nix: move dev outputs to subflake
* fix some typos
* nix: cleanup checks & dev shell
* add editorconfig
Diffstat (limited to 'src/commands/mod.rs')
| -rw-r--r-- | src/commands/mod.rs | 53 |
1 files changed, 43 insertions, 10 deletions
diff --git a/src/commands/mod.rs b/src/commands/mod.rs index 88a47b3..e55419b 100644 --- a/src/commands/mod.rs +++ b/src/commands/mod.rs @@ -1,20 +1,53 @@ -use crate::Data; - -use eyre::Report; -use poise::Command; +use crate::{Data, Error}; mod general; mod moderation; mod optional; -pub fn global() -> Vec<Command<Data, Report>> { - general::to_comands() +type Command = poise::Command<Data, Error>; + +#[macro_export] +macro_rules! cmd { + ($module: ident, $name: ident) => { + $module::$name::$name() + }; + + ($module: ident, $name: ident, $func: ident) => { + $module::$name::$func() + }; +} + +pub fn to_vec() -> Vec<Command> { + vec![ + cmd!(general, ask), + cmd!(general, bing), + cmd!(general, config), + cmd!(general, convert), + cmd!(general, random), + cmd!(general, version), + cmd!(moderation, clear_messages), + cmd!(optional, copypasta), + cmd!(optional, teawiespam), + cmd!(optional, uwurandom), + ] } -pub fn optional() -> Vec<Command<Data, Report>> { - optional::to_commands() +pub fn to_vec_global() -> Vec<Command> { + vec![ + cmd!(general, ask), + cmd!(general, bing), + cmd!(general, config), + cmd!(general, convert), + cmd!(general, random), + cmd!(general, version), + cmd!(moderation, clear_messages), + ] } -pub fn moderation() -> Vec<Command<Data, Report>> { - moderation::to_commands() +pub fn to_vec_optional() -> Vec<Command> { + vec![ + cmd!(optional, copypasta), + cmd!(optional, teawiespam), + cmd!(optional, uwurandom), + ] } |
