@@ -395,6 +395,30 @@ pub enum Unexpected<'a> {
395
395
Other ( & ' a str ) ,
396
396
}
397
397
398
+ impl < ' a > Unexpected < ' a > {
399
+ /// The input contained a signed integer `i128` that was not expected.
400
+ pub fn invalid_i128 < E > ( v : i128 , expected : & Expected ) -> E
401
+ where
402
+ E : Error ,
403
+ {
404
+ let mut buf = [ 0u8 ; 57 ] ;
405
+ let mut writer = format:: Buf :: new ( & mut buf) ;
406
+ fmt:: Write :: write_fmt ( & mut writer, format_args ! ( "integer `{}` as i128" , v) ) . unwrap ( ) ;
407
+ Error :: invalid_type ( Unexpected :: Other ( writer. as_str ( ) ) , expected)
408
+ }
409
+
410
+ /// The input contained an unsigned integer `u128` that was not expected.
411
+ pub fn invalid_u128 < E > ( v : u128 , expected : & Expected ) -> E
412
+ where
413
+ E : Error ,
414
+ {
415
+ let mut buf = [ 0u8 ; 57 ] ;
416
+ let mut writer = format:: Buf :: new ( & mut buf) ;
417
+ fmt:: Write :: write_fmt ( & mut writer, format_args ! ( "integer `{}` as u128" , v) ) . unwrap ( ) ;
418
+ Error :: invalid_type ( Unexpected :: Other ( writer. as_str ( ) ) , expected)
419
+ }
420
+ }
421
+
398
422
impl < ' a > fmt:: Display for Unexpected < ' a > {
399
423
fn fmt ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
400
424
use self :: Unexpected :: * ;
@@ -1373,13 +1397,7 @@ pub trait Visitor<'de>: Sized {
1373
1397
where
1374
1398
E : Error ,
1375
1399
{
1376
- let mut buf = [ 0u8 ; 58 ] ;
1377
- let mut writer = format:: Buf :: new ( & mut buf) ;
1378
- fmt:: Write :: write_fmt ( & mut writer, format_args ! ( "integer `{}` as i128" , v) ) . unwrap ( ) ;
1379
- Err ( Error :: invalid_type (
1380
- Unexpected :: Other ( writer. as_str ( ) ) ,
1381
- & self ,
1382
- ) )
1400
+ Err ( Unexpected :: invalid_i128 ( v, & self ) )
1383
1401
}
1384
1402
1385
1403
/// The input contains a `u8`.
@@ -1435,13 +1453,7 @@ pub trait Visitor<'de>: Sized {
1435
1453
where
1436
1454
E : Error ,
1437
1455
{
1438
- let mut buf = [ 0u8 ; 57 ] ;
1439
- let mut writer = format:: Buf :: new ( & mut buf) ;
1440
- fmt:: Write :: write_fmt ( & mut writer, format_args ! ( "integer `{}` as u128" , v) ) . unwrap ( ) ;
1441
- Err ( Error :: invalid_type (
1442
- Unexpected :: Other ( writer. as_str ( ) ) ,
1443
- & self ,
1444
- ) )
1456
+ Err ( Unexpected :: invalid_u128 ( v, & self ) )
1445
1457
}
1446
1458
1447
1459
/// The input contains an `f32`.
0 commit comments