2个版本
0.2.1 | 2022年9月27日 |
---|---|
0.2.0 | 2022年9月27日 |
#137 in #tuple
在 constdefault 中使用
8KB
71 行
ConstDefault 特性
一个类似于 Default
的特性以及用于 const
评估环境的派生宏。
该crate定义了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(),
);
}
依赖
~1.5MB
~35K SLoC