1个稳定版本
1.0.1 | 2022年9月27日 |
---|
#221 在 无标准库
11KB
203 行
ConstDefault特质
一个类似Default
的特质和用于const
评估上下文的推导宏。
此包定义了ConstDefault
特质,并为其实现了Rust原始类型、预定义类型、元组和数组。此外,它还提供了一个推导宏,使用户可以轻松地为自定义类型实现ConstDefault
。
- 100%安全的Rust
- 与
no_std
兼容 - 完整的宏洁度
- 无依赖
使用方法
添加
[dependencies]
constdefault = { version = "1.0", features = ["derive"] }
到您的Cargo.toml
以开始使用。
示例
Rust原始类型
use constdefault::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 constdefault::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(),
);
}
依赖
~215KB