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
}