2 unstable releases
0.2.0 | Dec 9, 2019 |
---|---|
0.1.0 | Dec 7, 2019 |
#1159 in Procedural macros
379 downloads per month
Used in 3 crates
11KB
149 lines
#[derive(Defaults)]
A better Default
derive macro.
Examples:
You can provide default value for a non-default field.
#[derive(Defaults)]
pub struct Event {
id: usize,
name: String,
#[def = "Instant::now()"]
time: Instant,
}
You can also provide a different default value of an already default field.
#[derive(Defaults)]
pub struct Event {
#[def = "4"]
id: usize,
name: String,
#[def = "Instant::now()"]
time: Instant,
}
You can even provide default value of enums:
#[derive(Defaults)]
#[def = "A"]
pub struct Classroom {
A,
B,
C
}
But what about variants with data?
#[derive(Defaults)]
#[def = "A(100)"]
pub struct SomeEnum {
A(usize),
B { x: usize, y: usize },
C
}
Dependencies
~1.5MB
~35K SLoC