fire-rs 0.1.0

A Rust implementation of Python-fire
Documentation

Fire-rs

受到 Python-fire 的启发,写了Rust版本。

利用过程宏,在编译期修改 AST 来达成。

几个重要的package:

  1. syn:用于解析AST
  2. quote:将元素转化为 TokenStream

Usage

use fire_rs::fire;

#[fire]
fn hello(a: i64, b: i64, c: String) {
    println!("{} is {}", a + b, c)
}

fn main() {
    hello_fire();// 利用宏生成出的新函数
}

命令行输入 cargo run -- 2 4 coolcargo run -- --a 2 --b 4 --c cool

输出 6 is cool

TODO

  • 支持普通函数
  • 支持命名参数
  • 支持默认参数
  • 支持泛型函数
  • 支持成员函数
  • 错误处理
  • 测试
  • 利用宏来简化代码