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