1 use enumn::N;
2
3 #[derive(Debug, N, PartialEq)]
4 enum EmptyEnum {}
5
6 #[test]
test_empty()7 fn test_empty() {
8 assert_eq!(EmptyEnum::n(0), None);
9 assert_eq!(EmptyEnum::n(1), None);
10 assert_eq!(EmptyEnum::n(-1), None);
11 }
12
13 #[derive(Debug, N, PartialEq)]
14 enum SimpleEnum {
15 Case0,
16 Case1,
17 }
18
19 #[test]
test_simple()20 fn test_simple() {
21 assert_eq!(SimpleEnum::n(0), Some(SimpleEnum::Case0));
22 assert_eq!(SimpleEnum::n(1), Some(SimpleEnum::Case1));
23 assert_eq!(SimpleEnum::n(4), None);
24 assert_eq!(SimpleEnum::n(-1), None);
25 }
26
27 #[derive(Debug, N, PartialEq)]
28 #[repr(u8)]
29 enum EnumWithRepr {
30 Case0,
31 }
32
33 #[test]
test_repr()34 fn test_repr() {
35 assert_eq!(EnumWithRepr::n(0), Some(EnumWithRepr::Case0));
36 assert_eq!(EnumWithRepr::n(255), None);
37 }
38
39 #[derive(Debug, N, PartialEq)]
40 enum EnumWithDiscriminant {
41 A = 10,
42 B, // implicitly 11
43 C = -80,
44 }
45
46 #[test]
test_discriminant()47 fn test_discriminant() {
48 assert_eq!(EnumWithDiscriminant::n(10), Some(EnumWithDiscriminant::A));
49 assert_eq!(EnumWithDiscriminant::n(11), Some(EnumWithDiscriminant::B));
50 assert_eq!(EnumWithDiscriminant::n(-80), Some(EnumWithDiscriminant::C));
51 assert_eq!(EnumWithDiscriminant::n(12), None);
52 }
53