6 个版本 (1 个稳定版本)
1.0.0 | 2021年11月19日 |
---|---|
1.0.0-beta1 | 2021年11月11日 |
0.3.1 | 2021年10月18日 |
0.2.0 | 2021年9月9日 |
0.1.0 | 2020年8月4日 |
#381 in 无标准库
25,506 每月下载量
用于 241 个 Crates (23 个直接使用)
11KB
204 行
ConstDefault 特质
类似于 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