4个版本 (2个稳定版)

2.0.0 2024年3月15日
1.0.0 2022年9月24日
0.1.0 2022年3月20日
0.0.1 2022年3月18日

过程宏 中排名第 467

Download history 19/week @ 2024-03-30 6/week @ 2024-04-06

每月下载量 123

Apache-2.0

26KB
399

opt_args: Rust函数和结构体的可选参数

Crates.io Crates.io docs.rs

此crate允许你自动生成宏,用于调用函数和实例化具有默认命名参数的结构体

导入宏并在函数或结构体上使用它,例如:

use opt_args::opt_args;

opt_args! {
    fn function(a: i32, b: &str = "default", c: (u8,)?) -> (i32, &str, (u8,)) {
        (a, b, c)
    }
}

opt_args! {
    #[derive(Debug, PartialEq, Eq)]
    struct Struct {
        x: i32,
        y: i32 = 1,
        z: i32?,
        other: Option<Box<Self>>?,
    }
}

自动生成如下可用的宏:

fn main() {
    assert_eq!(
        function!(1, b = "not the default"),
        (1, "not the default", (0,))
    );
    assert_eq!(
        Struct!(4, z = 5),
        Struct {
            x: 4,
            y: 1,
            z: 5,
            other: None
        }
    );
}

完整文档在此

依赖项

约3.5MB
约73K SLoC