2个不稳定版本

0.2.0 2019年12月9日
0.1.0 2019年12月7日

#1159 in 过程宏

Download history • Rust 包仓库 71/week @ 2024-04-12 • Rust 包仓库 57/week @ 2024-04-19 • Rust 包仓库 120/week @ 2024-04-26 • Rust 包仓库 88/week @ 2024-05-03 • Rust 包仓库 99/week @ 2024-05-10 • Rust 包仓库 50/week @ 2024-05-17 • Rust 包仓库 68/week @ 2024-05-24 • Rust 包仓库 331/week @ 2024-05-31 • Rust 包仓库 58/week @ 2024-06-07 • Rust 包仓库 52/week @ 2024-06-14 • Rust 包仓库 61/week @ 2024-06-21 • Rust 包仓库 39/week @ 2024-06-28 • Rust 包仓库 54/week @ 2024-07-05 • Rust 包仓库 139/week @ 2024-07-12 • Rust 包仓库 128/week @ 2024-07-19 • Rust 包仓库 58/week @ 2024-07-26 • Rust 包仓库

每月379次下载
3 crates 中使用

自定义许可证

11KB
149 代码行

#[derive(Defaults)]

更好的 Default derive 宏。

Crate

示例:

您可以为非默认字段提供默认值。

#[derive(Defaults)]
pub struct Event {
    id: usize,
    name: String,
    #[def = "Instant::now()"]
    time: Instant,
}

您还可以为已默认的字段提供不同的默认值。

#[derive(Defaults)]
pub struct Event {
    #[def = "4"]
    id: usize,
    name: String,
    #[def = "Instant::now()"]
    time: Instant,
}

您甚至可以为枚举提供默认值

#[derive(Defaults)]
#[def = "A"]
pub struct Classroom {
    A,
    B,
    C
}

但是,对于带有数据的变体怎么办呢?

#[derive(Defaults)]
#[def = "A(100)"]
pub struct SomeEnum {
    A(usize),
    B { x: usize, y: usize },
    C
}

依赖关系

~1.5MB
~35K SLoC