@@ -1017,6 +1017,12 @@ macro_rules! tuple_impl {
1017
1017
}
1018
1018
}
1019
1019
1020
+ impl <$one: DecodeLength > DecodeLength for ( $one, ) {
1021
+ fn len( self_encoded: & [ u8 ] ) -> Result <usize , Error > {
1022
+ $one:: len( self_encoded)
1023
+ }
1024
+ }
1025
+
1020
1026
impl <$one: EncodeLike <$extra>, $extra: Encode > crate :: EncodeLike <( $extra, ) > for ( $one, ) { }
1021
1027
} ;
1022
1028
( ( $first: ident, $fextra: ident) , $( ( $rest: ident, $rextra: ident ) , ) +) => {
@@ -1060,6 +1066,12 @@ macro_rules! tuple_impl {
1060
1066
$( $rest: EncodeLike <$rextra>, $rextra: Encode ) ,+> crate :: EncodeLike <( $fextra, $( $rextra ) ,+) >
1061
1067
for ( $first, $( $rest) ,+) { }
1062
1068
1069
+ impl <$first: DecodeLength , $( $rest) ,+> DecodeLength for ( $first, $( $rest) ,+) {
1070
+ fn len( self_encoded: & [ u8 ] ) -> Result <usize , Error > {
1071
+ $first:: len( self_encoded)
1072
+ }
1073
+ }
1074
+
1063
1075
tuple_impl!( $( ( $rest, $rextra) , ) + ) ;
1064
1076
}
1065
1077
}
@@ -1288,13 +1300,17 @@ mod tests {
1288
1300
let mut ll = LinkedList :: new ( ) ;
1289
1301
ll. push_back ( 1 ) ;
1290
1302
ll. push_back ( 2 ) ;
1303
+ let t1: ( Vec < _ > , ) = ( vector. clone ( ) , ) ;
1304
+ let t2: ( Vec < _ > , u32 ) = ( vector. clone ( ) , 3u32 ) ;
1291
1305
1292
1306
test_encode_length ( & vector, 10 ) ;
1293
1307
test_encode_length ( & btree_map, 2 ) ;
1294
1308
test_encode_length ( & btree_set, 2 ) ;
1295
1309
test_encode_length ( & vd, 2 ) ;
1296
1310
test_encode_length ( & bh, 2 ) ;
1297
1311
test_encode_length ( & ll, 2 ) ;
1312
+ test_encode_length ( & t1, 10 ) ;
1313
+ test_encode_length ( & t2, 10 ) ;
1298
1314
}
1299
1315
1300
1316
#[ test]
0 commit comments