4个版本 (破坏性更新)
0.4.0 | 2023年12月18日 |
---|---|
0.3.0 | 2023年9月5日 |
0.2.0 | 2023年8月31日 |
0.1.0 | 2018年2月26日 |
#236 in 过程宏
13KB
275 行
Rust Fire
将你的函数(s)转换为命令行应用程序。灵感来源于Google的Python Fire。
安装
cargo add fire
用法
// Turn a single function to CLI app.
#[fire::fire]
fn welcome() {
println!("Welcome!");
}
// Turn mutilple functions to CLI app.
#[fire::fire]
mod some_functions {
pub fn hello(name: String, times: i32) {
for _ in 0..times {
println!("Hello, {name}!");
}
}
pub fn bye() {
println!("Bye!");
}
}
fn main() {
// 'Fire' the functions with command line arguments.
fire::run!();
}
现在你可以运行你的CLI应用程序了。默认情况下,应调用单个函数 welcome
$ cargo build
$ ./target/debug/app
Welcome!
模块中的函数应作为子命令使用其函数名调用
$ cargo build
$ ./target/debug/app bye
Bye!
带有参数的函数将从CLI应用程序的参数接收参数,格式如下 --argname=argvalue
$ cargo build
$ ./target/debug/app hello --name='John Smith' --times=3
Hello, John Smith!
Hello, John Smith!
Hello, John Smith!
Fire将对每个参数调用 .parse()
(除了 &str
),因此支持所有实现 FromStr 以及 &str
的类型。对于可选参数,您可以使用泛型类型 Option
,例如 Option<String>
或 Option<i32>
;
许可
在BSD许可下授权。
依赖项
~305–760KB
~18K SLoC