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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
// macro_rules! match_property {
// ($value:expr, $on:ident, $inner:pat => $body:expr, $def:pat => $def_body: expr) => {
// container_variants!(match_property_arms, ($value, $on, $inner => $body, $def => $def_body))
// };
// ($value:expr, $on:ident, $inner:pat => $body:expr) => {
// container_variants!(match_property_arms, ($value, $on, $inner => $body))
// };
//
// ($value:expr, $inner:pat => $body:expr, $def:pat => $def_body: expr) => {
// container_variants!(match_property_arms, ($value, Self, $inner => $body, $def => $def_body))
// };
// ($value:expr, $inner:pat => $body:expr) => {
// container_variants!(match_property_arms, ($value, Self, $inner => $body))
// };
// }
//
// macro_rules! match_property_arms {
// (($value:expr, $on:ident, $inner:pat => $body:expr, $def:pat => $def_body: expr)
// [$( $variant:ident, )*]) => {
// match $value {
// $(
// $on::$variant($inner) => $body,
// )*
// $def => $def_body
// }
// };
//
// (($value:expr, $on:ident, $inner:pat => $body:expr)
// [$( $variant:ident, )*]) => {
// match $value {
// $(
// $on::$variant($inner) => $body,
// )*
// }
// };
// }
// macro_rules! match_enum_inner {
// (($value:expr, $on:ident, ||, $body:expr)
// [$( $variant:ident, )*] ) => {
// match $value {
// $(
// $on::$variant => $body,
// )*
// }
// };
// (($value:expr, $on:ident, |$inner:ident| $body:expr)
// [$( $variant:ident, )*] ) => {
// match $value {
// $(
// $on::$variant($inner) => $body,
// )*
// }
// };
// }
// macro_rules! match_enum {
// ($value:expr, $on:ident, ||, $body:expr) => {
// variants!(match_enum_inner, ($value, $on, $body))
// };
// ($value:expr, $on:ident, |$inner:ident| $body:expr) => {
// variants!(match_enum_inner, ($value, $on, |$inner| $body))
// };
// }
};
}