7 releases (1 stable)
1.0.0 | Nov 13, 2024 |
---|---|
0.3.1 | Jul 1, 2023 |
0.2.1 | May 31, 2023 |
0.1.1 | May 31, 2023 |
#322 in Procedural macros
132 downloads per month
7KB
Default Derive
Default implementation using macros
Example
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(),
}
}
}
Dependencies
~220–660KB
~16K SLoC