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