1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
pub enum LR<L,R> {
L(L), R(R), }
pub enum Enum0 {}
pub trait EnumX {
type LR;
fn from_lr( lr: Self::LR ) -> Self;
fn into_lr( self ) -> Self::LR;
}
use enumx_derive::EnumXDerives;
macro_rules! enumx_types {
($( $enum:ident<$($generic:ident),+>{ $($variant:ident)+ } )+) => {$(
#[derive( EnumXDerives )]
#[derive( Debug,PartialEq,Eq,PartialOrd,Ord )]
pub enum $enum<$($generic),+> {
$( $variant( $generic )),+
}
impl<$($generic),+> $enum<$($generic),+> {$(
pub fn $variant( e: $generic ) -> Self {
$enum::$variant( e )
}
)+}
)+}
}
enumx_types! {
Enum1<E0>{ _0 }
Enum2<E0,E1>{ _0 _1 }
Enum3<E0,E1,E2>{ _0 _1 _2 }
Enum4<E0,E1,E2,E3>{ _0 _1 _2 _3 }
Enum5<E0,E1,E2,E3,E4>{ _0 _1 _2 _3 _4 }
Enum6<E0,E1,E2,E3,E4,E5>{ _0 _1 _2 _3 _4 _5 }
Enum7<E0,E1,E2,E3,E4,E5,E6>{ _0 _1 _2 _3 _4 _5 _6 }
Enum8<E0,E1,E2,E3,E4,E5,E6,E7>{ _0 _1 _2 _3 _4 _5 _6 _7 }
Enum9<E0,E1,E2,E3,E4,E5,E6,E7,E8>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 }
Enum10<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 }
Enum11<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 }
Enum12<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 }
Enum13<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 }
Enum14<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 }
Enum15<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 }
Enum16<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 }
Enum17<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 }
Enum18<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 }
Enum19<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 }
Enum20<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 }
Enum21<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 }
Enum22<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 }
Enum23<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 }
Enum24<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 }
Enum25<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 }
Enum26<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 }
Enum27<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25,E26>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 }
Enum28<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25,E26,E27>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 }
Enum29<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25,E26,E27,E28>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 }
Enum30<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25,E26,E27,E28,E29>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 }
Enum31<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25,E26,E27,E28,E29,E30>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 _30 }
Enum32<E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25,E26,E27,E28,E29,E30,E31>{ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 _30 _31 }
}