@@ -399,6 +399,30 @@ pub enum Unexpected<'a> {
399
399
Other ( & ' a str ) ,
400
400
}
401
401
402
+ impl < ' a > Unexpected < ' a > {
403
+ /// The input contained a signed integer `i128` that was not expected.
404
+ pub fn invalid_i128 < E > ( v : i128 , expected : & dyn Expected ) -> E
405
+ where
406
+ E : Error ,
407
+ {
408
+ let mut buf = [ 0u8 ; 58 ] ;
409
+ let mut writer = crate :: format:: Buf :: new ( & mut buf) ;
410
+ fmt:: Write :: write_fmt ( & mut writer, format_args ! ( "integer `{}` as i128" , v) ) . unwrap ( ) ;
411
+ Error :: invalid_type ( Unexpected :: Other ( writer. as_str ( ) ) , expected)
412
+ }
413
+
414
+ /// The input contained an unsigned integer `u128` that was not expected.
415
+ pub fn invalid_u128 < E > ( v : u128 , expected : & dyn Expected ) -> E
416
+ where
417
+ E : Error ,
418
+ {
419
+ let mut buf = [ 0u8 ; 57 ] ;
420
+ let mut writer = crate :: format:: Buf :: new ( & mut buf) ;
421
+ fmt:: Write :: write_fmt ( & mut writer, format_args ! ( "integer `{}` as u128" , v) ) . unwrap ( ) ;
422
+ Error :: invalid_type ( Unexpected :: Other ( writer. as_str ( ) ) , expected)
423
+ }
424
+ }
425
+
402
426
impl < ' a > fmt:: Display for Unexpected < ' a > {
403
427
fn fmt ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
404
428
use self :: Unexpected :: * ;
@@ -1406,13 +1430,7 @@ pub trait Visitor<'de>: Sized {
1406
1430
where
1407
1431
E : Error ,
1408
1432
{
1409
- let mut buf = [ 0u8 ; 58 ] ;
1410
- let mut writer = crate :: format:: Buf :: new ( & mut buf) ;
1411
- fmt:: Write :: write_fmt ( & mut writer, format_args ! ( "integer `{}` as i128" , v) ) . unwrap ( ) ;
1412
- Err ( Error :: invalid_type (
1413
- Unexpected :: Other ( writer. as_str ( ) ) ,
1414
- & self ,
1415
- ) )
1433
+ Err ( Unexpected :: invalid_i128 ( v, & self ) )
1416
1434
}
1417
1435
1418
1436
/// The input contains a `u8`.
@@ -1468,13 +1486,7 @@ pub trait Visitor<'de>: Sized {
1468
1486
where
1469
1487
E : Error ,
1470
1488
{
1471
- let mut buf = [ 0u8 ; 57 ] ;
1472
- let mut writer = crate :: format:: Buf :: new ( & mut buf) ;
1473
- fmt:: Write :: write_fmt ( & mut writer, format_args ! ( "integer `{}` as u128" , v) ) . unwrap ( ) ;
1474
- Err ( Error :: invalid_type (
1475
- Unexpected :: Other ( writer. as_str ( ) ) ,
1476
- & self ,
1477
- ) )
1489
+ Err ( Unexpected :: invalid_u128 ( v, & self ) )
1478
1490
}
1479
1491
1480
1492
/// The input contains an `f32`.
0 commit comments