1个不稳定版本
0.1.0 | 2023年3月24日 |
---|
#6 in #枚举
6KB
79 行
确定枚举只具有变体相等的属性
示例
use enum_variant_eq::{*,enum_variant_eq_derive::*};
#[derive(Debug, EnumVariantEq)]
enum TestEnum {
Unit,
EmptyUnNamed(),
UnNamed(i8),
UnNamed2(i8, u8),
EmptyNamed {},
Named { x: i8 },
Named2 { x: i8, y: u8 },
}
use TestEnum::*;
assert!(Unit.enum_variant_eq(&Unit));
assert!(UnNamed(5).enum_variant_eq(&UnNamed(8)));
assert!(Named { x: 5 }.enum_variant_eq(&Named { x: 8 }));
错误
EnumVariantEq
仅适用于枚举。如果违反此条件,编译将崩溃
#[derive(EnumVariantEq)]
struct S;
error: #[derive(Debug, EnumVariantEq)]
| ^^^^^^^^^^^^^
= help: message: Type Is Not Enum
其他
构建Ast错误
依赖关系
~1.5MB
~35K SLoC