7个版本 (4个重大更新)
0.5.0 | 2019年2月10日 |
---|---|
0.4.1 | 2018年6月2日 |
0.4.0 | 2018年5月9日 |
0.3.0 | 2018年5月6日 |
0.1.1 | 2018年4月22日 |
#1122 在 过程宏
6KB
VariantEq
此crate提供了一个宏来实现枚举变体的相等性。
如果两个枚举变体来自同一枚举的同一变体,则它们是相等的,无论它们包含的字段值如何。
#[derive(VariantEq)]
enum Enum {
Variant,
}
示例
#[macro_use]
extern crate varianteq;
#[derive(Debug, VariantEq)]
enum E {
A(i32),
B(i32),
C(u32, bool),
}
fn main() {
assert_eq!(E::A(1), E::A(2));
assert_ne!(E::A(1), E::B(1));
assert_ne!(E::A(1), E::C(1, false));
}
错误
VariantEq
宏仅适用于枚举,如果在结构体上使用将导致编译错误。
#[derive(VariantEq)]
struct S;
error: #[derive(VariantEq)] is only defined for enums
依赖项
~2MB
~47K SLoC