3 个版本
0.1.2 | 2023年12月9日 |
---|---|
0.1.1 | 2023年12月9日 |
0.1.0 | 2023年12月9日 |
#7 in #sub
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
返回程序退出状态的方式,尽管你可以按你喜欢的方式使用它。
你仍然负责检查输入参数并按需执行子命令。