| Crates.io | defaults |
| lib.rs | defaults |
| version | 0.2.0 |
| created_at | 2019-12-07 16:39:32.399612+00 |
| updated_at | 2019-12-09 05:08:18.876183+00 |
| description | A better `Default` derive macro |
| homepage | https://github.com/95th/defaults |
| repository | https://github.com/95th/defaults |
| max_upload_size | |
| id | 187113 |
| size | 32,772 |
#[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
}