3 个版本

0.1.2 2023年12月9日
0.1.1 2023年12月9日
0.1.0 2023年12月9日

#7 in #sub

MIT 许可证

6KB
76

调度

调度是一个子命令调度器。

你可能见过有多个子命令的 CLI 程序。例如,cargo 本身就有像 build、check、clean 等子命令。

调度是一个库,让你能够轻松地在程序中添加这样的子命令。

用法

// Define a function for your subcommand which returns the type Result<i32, Box<dyn Error>>
fn subcommand() -> CommandResult {
    Ok(0)
}

// Create the dispatcher
let mut dispatcher = Dispatcher::new();

// Register your subcommands
dispatcher.register(Command { name: "subcommand", help: "My first subcommand", function: subcommand});

// Print help message to console
dispatcher.print_help();

// Execute sub command by name
dispatcher.run("subcommand")

更多信息

所有子命令都返回类型 CommandResult,它映射到 Result<i32, Box<dyn Error>>。这允许你的子命令能够轻松使用 Rust 内置的 ? 错误检查语法。i32 是子命令的返回状态或退出代码。对我来说,这就是 main 返回程序退出状态的方式,尽管你可以按你喜欢的方式使用它。

你仍然负责检查输入参数并按需执行子命令。

无运行时依赖