3个不稳定版本
0.5.0 | 2022年4月29日 |
---|---|
0.1.1 | 2022年1月13日 |
0.1.0 | 2022年1月13日 |
#17 in #ready
215KB
4K SLoC
只是一个Rust Discord包装器。
项目设计理念
- 高度可扩展和资源高效的框架
- 易于使用,直观,通常为高级
- 高度可定制
- 非常详细地记录
- 适用于商业用途的框架
核心功能
- 使用结构体创建斜杠命令的宏
- 自动注册命令
我们想要实现的一些酷想法
- 单元测试集成
- 这将涉及能够模拟事件到机器人,以便用户可以测试功能
- 中间件
计划使用
main.rs
use command::Command;
use command_group::CommandGroup;
use command_with_subcommands::ParentCommand;
fn main() {
Bot::new("BOT_TOKEN")
.add_commands([CommandGroup, ParentCommand, Command])
.run();
}
command.rs
#[command]
struct Command;
impl CommandTrait for Command {
NAME = "my_command";
DESCRIPTION = "Does some stuff.";
// OTHER STUFF
fn run(ctx: CommandContext) {
// DO SOME THINGS
}
}
command_group.rs
#[command_group]
struct CommandGroup;
impl CommandGroupTrait for CommandGroup {
NAME = "command_group";
DESCRIPTION = "A group of commands.";
// OTHER STUFF
}
#[command(CommandGroup)]
struct CommandInGroup;
impl CommandTrait for CommandInGroup {
NAME = "command_in_group";
DESCRIPTION = "A command in a command group.";
// OTHER STUFF
fn run(ctx CommandContext) {
// DO STUFF
}
}
command_with_subcommands.rs
#[command]
struct ParentCommand;
impl CommandTrait for ParentCommand {
NAME = "parent_command";
DESCRIPTION = "A command with a subcommand.";
// OTHER STUFF
fn run(ctx CommandContext) {
// DO STUFF
}
}
#[command(ParentCommand)]
struct Subcommand;
impl CommandTrait for Subcommand {
NAME = "subcommand";
DESCRIPTION = "A subcommand of a parent command.";
// OTHER STUFF
fn run(ctx CommandContext) {
// DO STUFF
}
}
依赖项
~13–25MB
~405K SLoC