2个不稳定版本
0.2.0 | 2019年12月9日 |
---|---|
0.1.0 | 2019年12月7日 |
#1159 in 过程宏
每月379次下载
在 3 crates 中使用
11KB
149 代码行
#[derive(Defaults)]
更好的 Default
derive 宏。
示例:
您可以为非默认字段提供默认值。
#[derive(Defaults)]
pub struct Event {
id: usize,
name: String,
#[def = "Instant::now()"]
time: Instant,
}
您还可以为已默认的字段提供不同的默认值。
#[derive(Defaults)]
pub struct Event {
#[def = "4"]
id: usize,
name: String,
#[def = "Instant::now()"]
time: Instant,
}
您甚至可以为枚举提供默认值
#[derive(Defaults)]
#[def = "A"]
pub struct Classroom {
A,
B,
C
}
但是,对于带有数据的变体怎么办呢?
#[derive(Defaults)]
#[def = "A(100)"]
pub struct SomeEnum {
A(usize),
B { x: usize, y: usize },
C
}
依赖关系
~1.5MB
~35K SLoC