enum_generator/
enum_generator.rs1pub use enum_generator_macros::generate_enum;
2
3#[test]
4fn run_tests() {
5
6 generate_enum!{
12 #[derive(Debug)]
13 enum FunctionKey {
14 F1: F _,
15 ...
16 F24
17 }
18 }
19 let e = FunctionKey::F12;
27
28 generate_enum!{
30 #[derive(Debug)]
31 enum LetterKey {
32 LetterA: Letter _,
33 ...
34 LetterZ
35 }
36 }
37
38 let e = LetterKey::LetterZ;
39 println!("{:?}", e);
40
41 generate_enum!{
43 #[derive(Debug)]
44 enum ExampleEnum {
45 Prefix1Suffix: Prefix _ Suffix,
46 ...
47 Prefix5Suffix
48 }
49 }
50
51
52 let e = ExampleEnum::Prefix3Suffix;
53 let e2 = ExampleEnum::Prefix4Suffix;
54 assert!(e as u8 != e2 as u8);
55
56 generate_enum!{
58 #[derive(Debug)]
59 enum ExampleEnum3<G> {
60 PrefixASuffix{ g: G } : Prefix _ Suffix,
61 ...
62 PrefixZSuffix{ g: G }
63 }
64 }
65
66 let e = ExampleEnum3::PrefixZSuffix::<usize>{ g: 20 } ;
67
68
69 generate_enum!{
71 #[derive(Debug)]
72 enum ExampleEnum4<G> {
73 PrefixaSuffix{ g: G } : Prefix _ Suffix,
74 ...
75 PrefixzSuffix{ g: G }
76 }
77 }
78
79 let e = ExampleEnum4::PrefixqSuffix::<usize>{ g: 20 } ;
80
81}