5 个不稳定版本

0.3.1 2022年6月26日
0.3.0 2022年6月21日
0.2.0 2022年6月19日
0.1.1 2022年6月19日
0.1.0 2022年6月19日

#15 in #dispatcher

22 每月下载量

MIT 许可证

25KB
686 代码行数,不包括注释

yogurt

酸奶是一个 Rust 命令库。

示例

use yogurt::argument::parser::IntArgument;
use yogurt::{Command, Dispatcher};

fn main() {
    // Create a dispatcher
    let dispatcher = Dispatcher::builder()
        // command prefix, defaults to none
        .prefix("/")
        // context factory, new context is created for every executed command
        .context(Box::new(|| ()))
        .child(
            Command::literal("ping").child(
                Command::argument("number", IntArgument, true).exec(Box::new(|ctx| {
                    println!("{:?}", ctx);
                    Ok(())
                }))
            )
        )
        .build()
        // fails if no context factory provided
        .unwrap();
    
    // run command
    dispatcher.run_command("/ping 3").unwrap();
}

lib.rs:

yogurt

酸奶是一个 Rust 命令库。

示例

use yogurt::argument::parser::IntArgument;
use yogurt::{Command, Dispatcher};

// Create a dispatcher
let dispatcher = Dispatcher::builder()
    // command prefix, defaults to none
    .prefix("/")
    .base_context(())
    // context factory, new context is created for every executed command
    .context_factory(|_| ())
    .child(
        Command::literal("ping").child(
            Command::argument("number", IntArgument, true).exec(|ctx| {
                println!("{:?}", ctx);
                Ok(())
            })
        )
    )
    .build()
    // fails if no context factory provided
    .unwrap();

// run command
dispatcher.run_command("/ping 3").unwrap();

依赖项

~1MB
~19K SLoC