@@ -14,7 +14,7 @@ use core::marker::PhantomData;
14
14
use core:: result;
15
15
use core:: str:: FromStr ;
16
16
use serde:: de:: { self , Expected , Unexpected } ;
17
- use serde:: { forward_to_deserialize_any, serde_if_integer128 } ;
17
+ use serde:: forward_to_deserialize_any;
18
18
19
19
#[ cfg( feature = "arbitrary_precision" ) ]
20
20
use crate :: number:: NumberDeserializer ;
@@ -335,31 +335,25 @@ impl<'de, R: Read<'de>> Deserializer<R> {
335
335
}
336
336
}
337
337
338
- serde_if_integer128 ! {
339
- fn scan_integer128( & mut self , buf: & mut String ) -> Result <( ) > {
340
- match tri!( self . next_char_or_null( ) ) {
341
- b'0' => {
342
- buf. push( '0' ) ;
343
- // There can be only one leading '0'.
344
- match tri!( self . peek_or_null( ) ) {
345
- b'0' ..=b'9' => {
346
- Err ( self . peek_error( ErrorCode :: InvalidNumber ) )
347
- }
348
- _ => Ok ( ( ) ) ,
349
- }
338
+ fn scan_integer128 ( & mut self , buf : & mut String ) -> Result < ( ) > {
339
+ match tri ! ( self . next_char_or_null( ) ) {
340
+ b'0' => {
341
+ buf. push ( '0' ) ;
342
+ // There can be only one leading '0'.
343
+ match tri ! ( self . peek_or_null( ) ) {
344
+ b'0' ..=b'9' => Err ( self . peek_error ( ErrorCode :: InvalidNumber ) ) ,
345
+ _ => Ok ( ( ) ) ,
350
346
}
351
- c @ b'1' ..=b'9' => {
347
+ }
348
+ c @ b'1' ..=b'9' => {
349
+ buf. push ( c as char ) ;
350
+ while let c @ b'0' ..=b'9' = tri ! ( self . peek_or_null( ) ) {
351
+ self . eat_char ( ) ;
352
352
buf. push ( c as char ) ;
353
- while let c @ b'0' ..=b'9' = tri!( self . peek_or_null( ) ) {
354
- self . eat_char( ) ;
355
- buf. push( c as char ) ;
356
- }
357
- Ok ( ( ) )
358
- }
359
- _ => {
360
- Err ( self . error( ErrorCode :: InvalidNumber ) )
361
353
}
354
+ Ok ( ( ) )
362
355
}
356
+ _ => Err ( self . error ( ErrorCode :: InvalidNumber ) ) ,
363
357
}
364
358
}
365
359
@@ -1437,67 +1431,65 @@ impl<'de, 'a, R: Read<'de>> de::Deserializer<'de> for &'a mut Deserializer<R> {
1437
1431
val
1438
1432
}
1439
1433
1440
- serde_if_integer128 ! {
1441
- fn deserialize_i128<V >( self , visitor: V ) -> Result <V :: Value >
1442
- where
1443
- V : de:: Visitor <' de>,
1444
- {
1445
- let mut buf = String :: new( ) ;
1446
-
1447
- match tri!( self . parse_whitespace( ) ) {
1448
- Some ( b'-' ) => {
1449
- self . eat_char( ) ;
1450
- buf. push( '-' ) ;
1451
- }
1452
- Some ( _) => { }
1453
- None => {
1454
- return Err ( self . peek_error( ErrorCode :: EofWhileParsingValue ) ) ;
1455
- }
1456
- } ;
1434
+ fn deserialize_i128 < V > ( self , visitor : V ) -> Result < V :: Value >
1435
+ where
1436
+ V : de:: Visitor < ' de > ,
1437
+ {
1438
+ let mut buf = String :: new ( ) ;
1457
1439
1458
- tri!( self . scan_integer128( & mut buf) ) ;
1440
+ match tri ! ( self . parse_whitespace( ) ) {
1441
+ Some ( b'-' ) => {
1442
+ self . eat_char ( ) ;
1443
+ buf. push ( '-' ) ;
1444
+ }
1445
+ Some ( _) => { }
1446
+ None => {
1447
+ return Err ( self . peek_error ( ErrorCode :: EofWhileParsingValue ) ) ;
1448
+ }
1449
+ } ;
1459
1450
1460
- let value = match buf. parse( ) {
1461
- Ok ( int) => visitor. visit_i128( int) ,
1462
- Err ( _) => {
1463
- return Err ( self . error( ErrorCode :: NumberOutOfRange ) ) ;
1464
- }
1465
- } ;
1451
+ tri ! ( self . scan_integer128( & mut buf) ) ;
1466
1452
1467
- match value {
1468
- Ok ( value) => Ok ( value) ,
1469
- Err ( err) => Err ( self . fix_position( err) ) ,
1453
+ let value = match buf. parse ( ) {
1454
+ Ok ( int) => visitor. visit_i128 ( int) ,
1455
+ Err ( _) => {
1456
+ return Err ( self . error ( ErrorCode :: NumberOutOfRange ) ) ;
1470
1457
}
1458
+ } ;
1459
+
1460
+ match value {
1461
+ Ok ( value) => Ok ( value) ,
1462
+ Err ( err) => Err ( self . fix_position ( err) ) ,
1471
1463
}
1464
+ }
1472
1465
1473
- fn deserialize_u128<V >( self , visitor: V ) -> Result <V :: Value >
1474
- where
1475
- V : de:: Visitor <' de>,
1476
- {
1477
- match tri!( self . parse_whitespace( ) ) {
1478
- Some ( b'-' ) => {
1479
- return Err ( self . peek_error( ErrorCode :: NumberOutOfRange ) ) ;
1480
- }
1481
- Some ( _) => { }
1482
- None => {
1483
- return Err ( self . peek_error( ErrorCode :: EofWhileParsingValue ) ) ;
1484
- }
1466
+ fn deserialize_u128 < V > ( self , visitor : V ) -> Result < V :: Value >
1467
+ where
1468
+ V : de:: Visitor < ' de > ,
1469
+ {
1470
+ match tri ! ( self . parse_whitespace( ) ) {
1471
+ Some ( b'-' ) => {
1472
+ return Err ( self . peek_error ( ErrorCode :: NumberOutOfRange ) ) ;
1485
1473
}
1474
+ Some ( _) => { }
1475
+ None => {
1476
+ return Err ( self . peek_error ( ErrorCode :: EofWhileParsingValue ) ) ;
1477
+ }
1478
+ }
1486
1479
1487
- let mut buf = String :: new( ) ;
1488
- tri!( self . scan_integer128( & mut buf) ) ;
1489
-
1490
- let value = match buf. parse( ) {
1491
- Ok ( int) => visitor. visit_u128( int) ,
1492
- Err ( _) => {
1493
- return Err ( self . error( ErrorCode :: NumberOutOfRange ) ) ;
1494
- }
1495
- } ;
1480
+ let mut buf = String :: new ( ) ;
1481
+ tri ! ( self . scan_integer128( & mut buf) ) ;
1496
1482
1497
- match value {
1498
- Ok ( value) => Ok ( value) ,
1499
- Err ( err) => Err ( self . fix_position( err) ) ,
1483
+ let value = match buf. parse ( ) {
1484
+ Ok ( int) => visitor. visit_u128 ( int) ,
1485
+ Err ( _) => {
1486
+ return Err ( self . error ( ErrorCode :: NumberOutOfRange ) ) ;
1500
1487
}
1488
+ } ;
1489
+
1490
+ match value {
1491
+ Ok ( value) => Ok ( value) ,
1492
+ Err ( err) => Err ( self . fix_position ( err) ) ,
1501
1493
}
1502
1494
}
1503
1495
@@ -2164,15 +2156,12 @@ where
2164
2156
deserialize_integer_key ! ( deserialize_i16 => visit_i16) ;
2165
2157
deserialize_integer_key ! ( deserialize_i32 => visit_i32) ;
2166
2158
deserialize_integer_key ! ( deserialize_i64 => visit_i64) ;
2159
+ deserialize_integer_key ! ( deserialize_i128 => visit_i128) ;
2167
2160
deserialize_integer_key ! ( deserialize_u8 => visit_u8) ;
2168
2161
deserialize_integer_key ! ( deserialize_u16 => visit_u16) ;
2169
2162
deserialize_integer_key ! ( deserialize_u32 => visit_u32) ;
2170
2163
deserialize_integer_key ! ( deserialize_u64 => visit_u64) ;
2171
-
2172
- serde_if_integer128 ! {
2173
- deserialize_integer_key!( deserialize_i128 => visit_i128) ;
2174
- deserialize_integer_key!( deserialize_u128 => visit_u128) ;
2175
- }
2164
+ deserialize_integer_key ! ( deserialize_u128 => visit_u128) ;
2176
2165
2177
2166
#[ inline]
2178
2167
fn deserialize_option < V > ( self , visitor : V ) -> Result < V :: Value >
0 commit comments