| Crates.io | default2 |
| lib.rs | default2 |
| version | 1.0.2 |
| created_at | 2023-05-31 02:18:54.421861+00 |
| updated_at | 2025-08-07 23:45:40.916156+00 |
| description | Default implementation using macros |
| homepage | https://github.com/yaa110/default2 |
| repository | https://github.com/yaa110/default2 |
| max_upload_size | |
| id | 878471 |
| size | 17,743 |
Default implementation using macros
Use default2::Default to set default value of each field using a macro:
#[derive(default2::Default)]
struct Process {
#[default(10)]
id: i32,
#[default("main".into())]
name: String,
#[default(num_cpus::get())]
cpus: usize,
#[default(vec![1, 2, 3])]
vector: Vec<u64>,
payload: u64,
}
The following code will be generated:
struct Process {
id: i32,
name: String,
cpus: usize,
payload: u64,
}
impl Default for Process {
fn default() -> Self {
Process {
id: 10,
name: "main".into(),
cpus: num_cpus::get(),
vector: vec![1, 2, 3],
payload: Default::default(),
}
}
}