Crates.io | defaults |
lib.rs | defaults |
version | 0.2.0 |
source | src |
created_at | 2019-12-07 16:39:32.399612 |
updated_at | 2019-12-09 05:08:18.876183 |
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
}