#minecraft #command #parse #cli #generate #parser

quartz_commands

在编译时生成解析器,用于处理与Minecraft类似的命令结构

1 个不稳定版本

0.1.0 2021年7月16日

#2788解析器实现

MIT 许可证

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