@@ -71,15 +71,18 @@ macro_rules! rpc_encode_decode {
71
71
( enum $name: ident $( <$( $T: ident) ,+>) * { $( $variant: ident $( ( $field: ident) ) * ) ,* $( , ) * } ) => {
72
72
impl <S , $( $( $T: Encode <S >) ,+) * > Encode <S > for $name $( <$( $T) ,+>) * {
73
73
fn encode( self , w: & mut Writer , s: & mut S ) {
74
- // HACK(eddyb) `Tag` enum duplicated between the
74
+ // HACK(eddyb): `Tag` enum duplicated between the
75
75
// two impls as there's no other place to stash it.
76
- #[ repr( u8 ) ] enum Tag { $( $variant) ,* }
77
76
#[ allow( non_upper_case_globals) ]
78
- impl Tag { $( const $variant: u8 = Tag :: $variant as u8 ; ) * }
77
+ mod tag {
78
+ #[ repr( u8 ) ] enum Tag { $( $variant) ,* }
79
+
80
+ $( pub const $variant: u8 = Tag :: $variant as u8 ; ) *
81
+ }
79
82
80
83
match self {
81
84
$( $name:: $variant $( ( $field) ) * => {
82
- < Tag > :: $variant. encode( w, s) ;
85
+ tag :: $variant. encode( w, s) ;
83
86
$( $field. encode( w, s) ; ) *
84
87
} ) *
85
88
}
@@ -90,14 +93,17 @@ macro_rules! rpc_encode_decode {
90
93
for $name $( <$( $T) ,+>) *
91
94
{
92
95
fn decode( r: & mut Reader <' a>, s: & mut S ) -> Self {
93
- // HACK(eddyb) `Tag` enum duplicated between the
96
+ // HACK(eddyb): `Tag` enum duplicated between the
94
97
// two impls as there's no other place to stash it.
95
- #[ repr( u8 ) ] enum Tag { $( $variant) ,* }
96
98
#[ allow( non_upper_case_globals) ]
97
- impl Tag { $( const $variant: u8 = Tag :: $variant as u8 ; ) * }
99
+ mod tag {
100
+ #[ repr( u8 ) ] enum Tag { $( $variant) ,* }
101
+
102
+ $( pub const $variant: u8 = Tag :: $variant as u8 ; ) *
103
+ }
98
104
99
105
match u8 :: decode( r, s) {
100
- $( < Tag > :: $variant => {
106
+ $( tag :: $variant => {
101
107
$( let $field = DecodeMut :: decode( r, s) ; ) *
102
108
$name:: $variant $( ( $field) ) *
103
109
} ) *
0 commit comments