6 个版本 (1 个稳定版本)

1.0.0 2021年11月19日
1.0.0-beta12021年11月11日
0.3.1 2021年10月18日
0.2.0 2021年9月9日
0.1.0 2020年8月4日

#381 in 无标准库

Download history 4011/week @ 2024-03-14 5907/week @ 2024-03-21 4315/week @ 2024-03-28 5340/week @ 2024-04-04 4985/week @ 2024-04-11 4720/week @ 2024-04-18 4159/week @ 2024-04-25 3719/week @ 2024-05-02 4722/week @ 2024-05-09 4391/week @ 2024-05-16 5035/week @ 2024-05-23 6218/week @ 2024-05-30 4829/week @ 2024-06-06 5957/week @ 2024-06-13 7040/week @ 2024-06-20 6679/week @ 2024-06-27

25,506 每月下载量
用于 241 个 Crates (23 个直接使用)

MIT 许可证

11KB
204

ConstDefault 特质

Crates.io Crates.io docs.rs actions

类似于 Default 的特质,用于 const 评估上下文,并提供 derive 宏。

此 crate 定义了 ConstDefault 特质,并为 Rust 原语、预定义类型、元组和数组实现了它。此外,它还提供了一个 derive 宏,使用户能够轻松地为自定义类型实现 ConstDefault

  • 100% 安全的 Rust
  • no_std 兼容
  • 完整的宏卫生性
  • 无依赖

用法

添加

[dependencies]
const-default = { version = "1.0", features = ["derive"] }

到您的 Cargo.toml 中以开始使用。

示例

Rust 原语

use const_default::ConstDefault;

fn main() {
    assert_eq!(<i32 as ConstDefault>::DEFAULT, 0);
    assert_eq!(<Option<i32> as ConstDefault>::DEFAULT, None);
    assert_eq!(<String as ConstDefault>::DEFAULT, String::new());
    assert_eq!(<Vec<u8> as ConstDefault>::DEFAULT, Vec::new());
}

派生

use const_default::ConstDefault;

#[derive(ConstDefault, Debug, Default, PartialEq)]
pub struct Color {
    r: u8,
    g: u8,
    b: u8,
}

fn main() {
    assert_eq!(
        <Color as ConstDefault>::DEFAULT,
        Color::default(),
    );
}

依赖

~0–540KB
~11K SLoC