Crates.io | default2 |
lib.rs | default2 |
version | 0.3.1 |
source | src |
created_at | 2023-05-31 02:18:54.421861 |
updated_at | 2023-07-01 22:05:46.53137 |
description | Default implementation using macros |
homepage | https://github.com/yaa110/default2 |
repository | https://github.com/yaa110/default2 |
max_upload_size | |
id | 878471 |
size | 16,537 |
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(),
}
}
}