Use the attribute macro to convert a ordinary function into a command line application (aka cli
).
Inspired by Python-fire
use fire_rs::fire;
#[fire]
fn foo(a: i32, b: f64, c: String) {
println!("{} is {}", a as f64 + b, c);
}
fn main() {
foo_fire();
}
Run cargo run -- 1 2.1 cool
or cargo run -- a 1 --b 2.1 --c cool
,
the program will output 3.1 is cool
- Normal args
- Named args
- Doc
- Test
- Publish to
crates.io
- CI/CD
-
&str
problem -
unused_
warning - Default args
- Multiple functions
- Deal with errors