6个版本

0.3.1 2023年7月1日
0.3.0 2023年7月1日
0.2.1 2023年5月31日
0.1.1 2023年5月31日

进程宏 中排名第496

MIT/Apache

7KB

默认派生

Test crates.io

使用宏实现默认实现

示例

使用 default2::Default 通过宏设置每个字段的默认值

#[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,
}

以下代码将被生成

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(),
        }
    }
}

依赖项

~285–740KB
~18K SLoC