@@ -1406,74 +1406,74 @@ macro_rules! tuple_impls {
1406
1406
1407
1407
macro_rules! tuple_impl_body {
1408
1408
( $len: tt => ( $( $n: tt $name: ident) +) ) => {
1409
+ #[ inline]
1410
+ fn deserialize<D >( deserializer: D ) -> Result <Self , D :: Error >
1411
+ where
1412
+ D : Deserializer <' de>,
1413
+ {
1414
+ struct TupleVisitor <$( $name, ) +> {
1415
+ marker: PhantomData <( $( $name, ) +) >,
1416
+ }
1417
+
1418
+ impl <' de, $( $name: Deserialize <' de>) ,+> Visitor <' de> for TupleVisitor <$( $name, ) +> {
1419
+ type Value = ( $( $name, ) +) ;
1420
+
1421
+ fn expecting( & self , formatter: & mut fmt:: Formatter ) -> fmt:: Result {
1422
+ formatter. write_str( concat!( "a tuple of size " , $len) )
1423
+ }
1424
+
1409
1425
#[ inline]
1410
- fn deserialize<D >( deserializer: D ) -> Result <Self , D :: Error >
1426
+ #[ allow( non_snake_case) ]
1427
+ fn visit_seq<A >( self , mut seq: A ) -> Result <Self :: Value , A :: Error >
1411
1428
where
1412
- D : Deserializer <' de>,
1429
+ A : SeqAccess <' de>,
1413
1430
{
1414
- struct TupleVisitor <$( $name, ) +> {
1415
- marker: PhantomData <( $( $name, ) +) >,
1416
- }
1431
+ $(
1432
+ let $name = match tri!( seq. next_element( ) ) {
1433
+ Some ( value) => value,
1434
+ None => return Err ( Error :: invalid_length( $n, & self ) ) ,
1435
+ } ;
1436
+ ) +
1417
1437
1418
- impl <' de, $( $name: Deserialize <' de>) ,+> Visitor <' de> for TupleVisitor <$( $name, ) +> {
1419
- type Value = ( $( $name, ) +) ;
1438
+ Ok ( ( $( $name, ) +) )
1439
+ }
1440
+ }
1420
1441
1421
- fn expecting( & self , formatter: & mut fmt:: Formatter ) -> fmt:: Result {
1422
- formatter. write_str( concat!( "a tuple of size " , $len) )
1423
- }
1442
+ deserializer. deserialize_tuple( $len, TupleVisitor { marker: PhantomData } )
1443
+ }
1424
1444
1425
- #[ inline]
1426
- #[ allow( non_snake_case) ]
1427
- fn visit_seq<A >( self , mut seq: A ) -> Result <Self :: Value , A :: Error >
1428
- where
1429
- A : SeqAccess <' de>,
1430
- {
1431
- $(
1432
- let $name = match tri!( seq. next_element( ) ) {
1433
- Some ( value) => value,
1434
- None => return Err ( Error :: invalid_length( $n, & self ) ) ,
1435
- } ;
1436
- ) +
1445
+ #[ inline]
1446
+ fn deserialize_in_place<D >( deserializer: D , place: & mut Self ) -> Result <( ) , D :: Error >
1447
+ where
1448
+ D : Deserializer <' de>,
1449
+ {
1450
+ struct TupleInPlaceVisitor <' a, $( $name: ' a, ) +>( & ' a mut ( $( $name, ) +) ) ;
1437
1451
1438
- Ok ( ( $( $name, ) +) )
1439
- }
1440
- }
1452
+ impl <' a, ' de, $( $name: Deserialize <' de>) ,+> Visitor <' de> for TupleInPlaceVisitor <' a, $( $name, ) +> {
1453
+ type Value = ( ) ;
1441
1454
1442
- deserializer. deserialize_tuple( $len, TupleVisitor { marker: PhantomData } )
1455
+ fn expecting( & self , formatter: & mut fmt:: Formatter ) -> fmt:: Result {
1456
+ formatter. write_str( concat!( "a tuple of size " , $len) )
1443
1457
}
1444
1458
1445
1459
#[ inline]
1446
- fn deserialize_in_place<D >( deserializer: D , place: & mut Self ) -> Result <( ) , D :: Error >
1460
+ #[ allow( non_snake_case) ]
1461
+ fn visit_seq<A >( self , mut seq: A ) -> Result <Self :: Value , A :: Error >
1447
1462
where
1448
- D : Deserializer <' de>,
1463
+ A : SeqAccess <' de>,
1449
1464
{
1450
- struct TupleInPlaceVisitor <' a, $( $name: ' a, ) +>( & ' a mut ( $( $name, ) +) ) ;
1451
-
1452
- impl <' a, ' de, $( $name: Deserialize <' de>) ,+> Visitor <' de> for TupleInPlaceVisitor <' a, $( $name, ) +> {
1453
- type Value = ( ) ;
1454
-
1455
- fn expecting( & self , formatter: & mut fmt:: Formatter ) -> fmt:: Result {
1456
- formatter. write_str( concat!( "a tuple of size " , $len) )
1457
- }
1458
-
1459
- #[ inline]
1460
- #[ allow( non_snake_case) ]
1461
- fn visit_seq<A >( self , mut seq: A ) -> Result <Self :: Value , A :: Error >
1462
- where
1463
- A : SeqAccess <' de>,
1464
- {
1465
- $(
1466
- if tri!( seq. next_element_seed( InPlaceSeed ( & mut ( self . 0 ) . $n) ) ) . is_none( ) {
1467
- return Err ( Error :: invalid_length( $n, & self ) ) ;
1468
- }
1469
- ) +
1470
-
1471
- Ok ( ( ) )
1465
+ $(
1466
+ if tri!( seq. next_element_seed( InPlaceSeed ( & mut ( self . 0 ) . $n) ) ) . is_none( ) {
1467
+ return Err ( Error :: invalid_length( $n, & self ) ) ;
1472
1468
}
1473
- }
1469
+ ) +
1474
1470
1475
- deserializer . deserialize_tuple ( $len , TupleInPlaceVisitor ( place ) )
1471
+ Ok ( ( ) )
1476
1472
}
1473
+ }
1474
+
1475
+ deserializer. deserialize_tuple( $len, TupleInPlaceVisitor ( place) )
1476
+ }
1477
1477
} ;
1478
1478
}
1479
1479
0 commit comments