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
#[macro_export] macro_rules! deref1 {( $o:expr, $($f:tt)+ ) => { match $o { Enum1::_0(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref2 {( $o:expr, $($f:tt)+ ) => { match $o { Enum2::_0(ref v)=>v.$($f)+, Enum2::_1(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref3 {( $o:expr, $($f:tt)+ ) => { match $o { Enum3::_0(ref v)=>v.$($f)+, Enum3::_1(ref v)=>v.$($f)+, Enum3::_2(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref4 {( $o:expr, $($f:tt)+ ) => { match $o { Enum4::_0(ref v)=>v.$($f)+, Enum4::_1(ref v)=>v.$($f)+, Enum4::_2(ref v)=>v.$($f)+, Enum4::_3(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref5 {( $o:expr, $($f:tt)+ ) => { match $o { Enum5::_0(ref v)=>v.$($f)+, Enum5::_1(ref v)=>v.$($f)+, Enum5::_2(ref v)=>v.$($f)+, Enum5::_3(ref v)=>v.$($f)+, Enum5::_4(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref6 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref v)=>v.$($f)+, Enum6::_1(ref v)=>v.$($f)+, Enum6::_2(ref v)=>v.$($f)+, Enum6::_3(ref v)=>v.$($f)+, Enum6::_4(ref v)=>v.$($f)+, Enum6::_5(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref7 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref v)=>v.$($f)+, Enum6::_1(ref v)=>v.$($f)+, Enum6::_2(ref v)=>v.$($f)+, Enum6::_3(ref v)=>v.$($f)+, Enum6::_4(ref v)=>v.$($f)+, Enum6::_5(ref v)=>v.$($f)+, Enum6::_6(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref8 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref v)=>v.$($f)+, Enum6::_1(ref v)=>v.$($f)+, Enum6::_2(ref v)=>v.$($f)+, Enum6::_3(ref v)=>v.$($f)+, Enum6::_4(ref v)=>v.$($f)+, Enum6::_5(ref v)=>v.$($f)+, Enum6::_6(ref v)=>v.$($f)+, Enum6::_7(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref9 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref v)=>v.$($f)+, Enum6::_1(ref v)=>v.$($f)+, Enum6::_2(ref v)=>v.$($f)+, Enum6::_3(ref v)=>v.$($f)+, Enum6::_4(ref v)=>v.$($f)+, Enum6::_5(ref v)=>v.$($f)+, Enum6::_6(ref v)=>v.$($f)+, Enum6::_7(ref v)=>v.$($f)+, Enum6::_8(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref10 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref v)=>v.$($f)+, Enum6::_1(ref v)=>v.$($f)+, Enum6::_2(ref v)=>v.$($f)+, Enum6::_3(ref v)=>v.$($f)+, Enum6::_4(ref v)=>v.$($f)+, Enum6::_5(ref v)=>v.$($f)+, Enum6::_6(ref v)=>v.$($f)+, Enum6::_7(ref v)=>v.$($f)+, Enum6::_8(ref v)=>v.$($f)+, Enum6::_9(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref11 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref v)=>v.$($f)+, Enum6::_1(ref v)=>v.$($f)+, Enum6::_2(ref v)=>v.$($f)+, Enum6::_3(ref v)=>v.$($f)+, Enum6::_4(ref v)=>v.$($f)+, Enum6::_5(ref v)=>v.$($f)+, Enum6::_6(ref v)=>v.$($f)+, Enum6::_7(ref v)=>v.$($f)+, Enum6::_8(ref v)=>v.$($f)+, Enum6::_9(ref v)=>v.$($f)+, Enum6::_10(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref12 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref v)=>v.$($f)+, Enum6::_1(ref v)=>v.$($f)+, Enum6::_2(ref v)=>v.$($f)+, Enum6::_3(ref v)=>v.$($f)+, Enum6::_4(ref v)=>v.$($f)+, Enum6::_5(ref v)=>v.$($f)+, Enum6::_6(ref v)=>v.$($f)+, Enum6::_7(ref v)=>v.$($f)+, Enum6::_8(ref v)=>v.$($f)+, Enum6::_9(ref v)=>v.$($f)+, Enum6::_10(ref v)=>v.$($f)+, Enum6::_11(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref13 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref v)=>v.$($f)+, Enum6::_1(ref v)=>v.$($f)+, Enum6::_2(ref v)=>v.$($f)+, Enum6::_3(ref v)=>v.$($f)+, Enum6::_4(ref v)=>v.$($f)+, Enum6::_5(ref v)=>v.$($f)+, Enum6::_6(ref v)=>v.$($f)+, Enum6::_7(ref v)=>v.$($f)+, Enum6::_8(ref v)=>v.$($f)+, Enum6::_9(ref v)=>v.$($f)+, Enum6::_10(ref v)=>v.$($f)+, Enum6::_11(ref v)=>v.$($f)+, Enum6::_12(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref14 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref v)=>v.$($f)+, Enum6::_1(ref v)=>v.$($f)+, Enum6::_2(ref v)=>v.$($f)+, Enum6::_3(ref v)=>v.$($f)+, Enum6::_4(ref v)=>v.$($f)+, Enum6::_5(ref v)=>v.$($f)+, Enum6::_6(ref v)=>v.$($f)+, Enum6::_7(ref v)=>v.$($f)+, Enum6::_8(ref v)=>v.$($f)+, Enum6::_9(ref v)=>v.$($f)+, Enum6::_10(ref v)=>v.$($f)+, Enum6::_11(ref v)=>v.$($f)+, Enum6::_12(ref v)=>v.$($f)+, Enum6::_13(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref15 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref v)=>v.$($f)+, Enum6::_1(ref v)=>v.$($f)+, Enum6::_2(ref v)=>v.$($f)+, Enum6::_3(ref v)=>v.$($f)+, Enum6::_4(ref v)=>v.$($f)+, Enum6::_5(ref v)=>v.$($f)+, Enum6::_6(ref v)=>v.$($f)+, Enum6::_7(ref v)=>v.$($f)+, Enum6::_8(ref v)=>v.$($f)+, Enum6::_9(ref v)=>v.$($f)+, Enum6::_10(ref v)=>v.$($f)+, Enum6::_11(ref v)=>v.$($f)+, Enum6::_12(ref v)=>v.$($f)+, Enum6::_13(ref v)=>v.$($f)+, Enum6::_14(ref v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref16 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref v)=>v.$($f)+, Enum6::_1(ref v)=>v.$($f)+, Enum6::_2(ref v)=>v.$($f)+, Enum6::_3(ref v)=>v.$($f)+, Enum6::_4(ref v)=>v.$($f)+, Enum6::_5(ref v)=>v.$($f)+, Enum6::_6(ref v)=>v.$($f)+, Enum6::_7(ref v)=>v.$($f)+, Enum6::_8(ref v)=>v.$($f)+, Enum6::_9(ref v)=>v.$($f)+, Enum6::_10(ref v)=>v.$($f)+, Enum6::_11(ref v)=>v.$($f)+, Enum6::_12(ref v)=>v.$($f)+, Enum6::_13(ref v)=>v.$($f)+, Enum6::_14(ref v)=>v.$($f)+, Enum6::_15(ref v)=>v.$($f)+ }}}

#[macro_export] macro_rules! deref_mut1 {( $o:expr, $($f:tt)+ ) => { match $o { Enum1::_0(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut2 {( $o:expr, $($f:tt)+ ) => { match $o { Enum2::_0(ref mut v)=>v.$($f)+, Enum2::_1(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut3 {( $o:expr, $($f:tt)+ ) => { match $o { Enum3::_0(ref mut v)=>v.$($f)+, Enum3::_1(ref mut v)=>v.$($f)+, Enum3::_2(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut4 {( $o:expr, $($f:tt)+ ) => { match $o { Enum4::_0(ref mut v)=>v.$($f)+, Enum4::_1(ref mut v)=>v.$($f)+, Enum4::_2(ref mut v)=>v.$($f)+, Enum4::_3(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut5 {( $o:expr, $($f:tt)+ ) => { match $o { Enum5::_0(ref mut v)=>v.$($f)+, Enum5::_1(ref mut v)=>v.$($f)+, Enum5::_2(ref mut v)=>v.$($f)+, Enum5::_3(ref mut v)=>v.$($f)+, Enum5::_4(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut6 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref mut v)=>v.$($f)+, Enum6::_1(ref mut v)=>v.$($f)+, Enum6::_2(ref mut v)=>v.$($f)+, Enum6::_3(ref mut v)=>v.$($f)+, Enum6::_4(ref mut v)=>v.$($f)+, Enum6::_5(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut7 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref mut v)=>v.$($f)+, Enum6::_1(ref mut v)=>v.$($f)+, Enum6::_2(ref mut v)=>v.$($f)+, Enum6::_3(ref mut v)=>v.$($f)+, Enum6::_4(ref mut v)=>v.$($f)+, Enum6::_5(ref mut v)=>v.$($f)+, Enum6::_6(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut8 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref mut v)=>v.$($f)+, Enum6::_1(ref mut v)=>v.$($f)+, Enum6::_2(ref mut v)=>v.$($f)+, Enum6::_3(ref mut v)=>v.$($f)+, Enum6::_4(ref mut v)=>v.$($f)+, Enum6::_5(ref mut v)=>v.$($f)+, Enum6::_6(ref mut v)=>v.$($f)+, Enum6::_7(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut9 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref mut v)=>v.$($f)+, Enum6::_1(ref mut v)=>v.$($f)+, Enum6::_2(ref mut v)=>v.$($f)+, Enum6::_3(ref mut v)=>v.$($f)+, Enum6::_4(ref mut v)=>v.$($f)+, Enum6::_5(ref mut v)=>v.$($f)+, Enum6::_6(ref mut v)=>v.$($f)+, Enum6::_7(ref mut v)=>v.$($f)+, Enum6::_8(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut10 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref mut v)=>v.$($f)+, Enum6::_1(ref mut v)=>v.$($f)+, Enum6::_2(ref mut v)=>v.$($f)+, Enum6::_3(ref mut v)=>v.$($f)+, Enum6::_4(ref mut v)=>v.$($f)+, Enum6::_5(ref mut v)=>v.$($f)+, Enum6::_6(ref mut v)=>v.$($f)+, Enum6::_7(ref mut v)=>v.$($f)+, Enum6::_8(ref mut v)=>v.$($f)+, Enum6::_9(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut11 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref mut v)=>v.$($f)+, Enum6::_1(ref mut v)=>v.$($f)+, Enum6::_2(ref mut v)=>v.$($f)+, Enum6::_3(ref mut v)=>v.$($f)+, Enum6::_4(ref mut v)=>v.$($f)+, Enum6::_5(ref mut v)=>v.$($f)+, Enum6::_6(ref mut v)=>v.$($f)+, Enum6::_7(ref mut v)=>v.$($f)+, Enum6::_8(ref mut v)=>v.$($f)+, Enum6::_9(ref mut v)=>v.$($f)+, Enum6::_10(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut12 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref mut v)=>v.$($f)+, Enum6::_1(ref mut v)=>v.$($f)+, Enum6::_2(ref mut v)=>v.$($f)+, Enum6::_3(ref mut v)=>v.$($f)+, Enum6::_4(ref mut v)=>v.$($f)+, Enum6::_5(ref mut v)=>v.$($f)+, Enum6::_6(ref mut v)=>v.$($f)+, Enum6::_7(ref mut v)=>v.$($f)+, Enum6::_8(ref mut v)=>v.$($f)+, Enum6::_9(ref mut v)=>v.$($f)+, Enum6::_10(ref mut v)=>v.$($f)+, Enum6::_11(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut13 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref mut v)=>v.$($f)+, Enum6::_1(ref mut v)=>v.$($f)+, Enum6::_2(ref mut v)=>v.$($f)+, Enum6::_3(ref mut v)=>v.$($f)+, Enum6::_4(ref mut v)=>v.$($f)+, Enum6::_5(ref mut v)=>v.$($f)+, Enum6::_6(ref mut v)=>v.$($f)+, Enum6::_7(ref mut v)=>v.$($f)+, Enum6::_8(ref mut v)=>v.$($f)+, Enum6::_9(ref mut v)=>v.$($f)+, Enum6::_10(ref mut v)=>v.$($f)+, Enum6::_11(ref mut v)=>v.$($f)+, Enum6::_12(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut14 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref mut v)=>v.$($f)+, Enum6::_1(ref mut v)=>v.$($f)+, Enum6::_2(ref mut v)=>v.$($f)+, Enum6::_3(ref mut v)=>v.$($f)+, Enum6::_4(ref mut v)=>v.$($f)+, Enum6::_5(ref mut v)=>v.$($f)+, Enum6::_6(ref mut v)=>v.$($f)+, Enum6::_7(ref mut v)=>v.$($f)+, Enum6::_8(ref mut v)=>v.$($f)+, Enum6::_9(ref mut v)=>v.$($f)+, Enum6::_10(ref mut v)=>v.$($f)+, Enum6::_11(ref mut v)=>v.$($f)+, Enum6::_12(ref mut v)=>v.$($f)+, Enum6::_13(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut15 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref mut v)=>v.$($f)+, Enum6::_1(ref mut v)=>v.$($f)+, Enum6::_2(ref mut v)=>v.$($f)+, Enum6::_3(ref mut v)=>v.$($f)+, Enum6::_4(ref mut v)=>v.$($f)+, Enum6::_5(ref mut v)=>v.$($f)+, Enum6::_6(ref mut v)=>v.$($f)+, Enum6::_7(ref mut v)=>v.$($f)+, Enum6::_8(ref mut v)=>v.$($f)+, Enum6::_9(ref mut v)=>v.$($f)+, Enum6::_10(ref mut v)=>v.$($f)+, Enum6::_11(ref mut v)=>v.$($f)+, Enum6::_12(ref mut v)=>v.$($f)+, Enum6::_13(ref mut v)=>v.$($f)+, Enum6::_14(ref mut v)=>v.$($f)+ }}}
#[macro_export] macro_rules! deref_mut16 {( $o:expr, $($f:tt)+ ) => { match $o { Enum6::_0(ref mut v)=>v.$($f)+, Enum6::_1(ref mut v)=>v.$($f)+, Enum6::_2(ref mut v)=>v.$($f)+, Enum6::_3(ref mut v)=>v.$($f)+, Enum6::_4(ref mut v)=>v.$($f)+, Enum6::_5(ref mut v)=>v.$($f)+, Enum6::_6(ref mut v)=>v.$($f)+, Enum6::_7(ref mut v)=>v.$($f)+, Enum6::_8(ref mut v)=>v.$($f)+, Enum6::_9(ref mut v)=>v.$($f)+, Enum6::_10(ref mut v)=>v.$($f)+, Enum6::_11(ref mut v)=>v.$($f)+, Enum6::_12(ref mut v)=>v.$($f)+, Enum6::_13(ref mut v)=>v.$($f)+, Enum6::_14(ref mut v)=>v.$($f)+, Enum6::_15(ref mut v)=>v.$($f)+ }}}