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 过程宏

BSD-2-Clause

13KB
275

Rust Fire

logo

将你的函数(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