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
每月下载量 123
26KB
399 行
此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