1 个不稳定版本
0.1.0 | 2021年7月16日 |
---|
#2788 在 解析器实现
48KB
568 行
quartz_commands
在编译时生成解析器,用于处理与Minecraft类似的命令结构。使用自定义设计的语法,可以在我们的 module!
宏中有效地指定多个命令的格式。
此crate是Rust语言中Minecraft服务器实现Quartz的独立命令处理器。
对于实际示例,请查看Quartz的代理。
用法
将此crate添加到依赖项时,请使用最新版本,如下所示。
[dependencies]
quartz_commands = "0.1.0"
以下是一个简单示例
use quartz_commands::module;
module! {
mod simple;
type Context<'ctx> = &'ctx mut u32;
command add
where additional: u32,
{
additional executes |ctx| {
let result = *ctx + additional;
println!("{} + {} = {}", *ctx, additional, result);
*ctx = result;
Ok(())
};
additional suggests |_ctx, _arg| ["10", "20"].iter().copied();
}
}
fn main() {
use quartz_commands::CommandModule;
let mut x: u32 = 5;
assert!((Simple).dispatch("add 10", &mut x).is_ok());
assert_eq!(x, 15);
}
有关更多示例和自定义命令语法的深入解释,请参阅此处的文档。
依赖项
~3.5–4.5MB
~89K SLoC