@@ -417,6 +417,13 @@ impl<'a> ser::SerializeStructVariant for &'a mut ConfigSerializer {
417
417
418
418
pub struct StringKeySerializer ;
419
419
420
+ /// Define `$emthod`, `serialize_foo`, taking `$type` and serialising it via [`Display`]
421
+ macro_rules! string_serialize_via_display { { $method: ident, $type: ty } => {
422
+ fn $method( self , v: $type) -> Result <Self :: Ok > {
423
+ Ok ( v. to_string( ) )
424
+ }
425
+ } }
426
+
420
427
impl ser:: Serializer for StringKeySerializer {
421
428
type Ok = String ;
422
429
type Error = ConfigError ;
@@ -428,57 +435,19 @@ impl ser::Serializer for StringKeySerializer {
428
435
type SerializeStruct = Self ;
429
436
type SerializeStructVariant = Self ;
430
437
431
- fn serialize_bool ( self , v : bool ) -> Result < Self :: Ok > {
432
- Ok ( v. to_string ( ) )
433
- }
434
-
435
- fn serialize_i8 ( self , v : i8 ) -> Result < Self :: Ok > {
436
- Ok ( v. to_string ( ) )
437
- }
438
-
439
- fn serialize_i16 ( self , v : i16 ) -> Result < Self :: Ok > {
440
- Ok ( v. to_string ( ) )
441
- }
442
-
443
- fn serialize_i32 ( self , v : i32 ) -> Result < Self :: Ok > {
444
- Ok ( v. to_string ( ) )
445
- }
446
-
447
- fn serialize_i64 ( self , v : i64 ) -> Result < Self :: Ok > {
448
- Ok ( v. to_string ( ) )
449
- }
450
-
451
- fn serialize_u8 ( self , v : u8 ) -> Result < Self :: Ok > {
452
- Ok ( v. to_string ( ) )
453
- }
454
-
455
- fn serialize_u16 ( self , v : u16 ) -> Result < Self :: Ok > {
456
- Ok ( v. to_string ( ) )
457
- }
458
-
459
- fn serialize_u32 ( self , v : u32 ) -> Result < Self :: Ok > {
460
- Ok ( v. to_string ( ) )
461
- }
462
-
463
- fn serialize_u64 ( self , v : u64 ) -> Result < Self :: Ok > {
464
- Ok ( v. to_string ( ) )
465
- }
466
-
467
- fn serialize_f32 ( self , v : f32 ) -> Result < Self :: Ok > {
468
- Ok ( v. to_string ( ) )
469
- }
470
-
471
- fn serialize_f64 ( self , v : f64 ) -> Result < Self :: Ok > {
472
- Ok ( v. to_string ( ) )
473
- }
474
-
475
- fn serialize_char ( self , v : char ) -> Result < Self :: Ok > {
476
- Ok ( v. to_string ( ) )
477
- }
478
-
479
- fn serialize_str ( self , v : & str ) -> Result < Self :: Ok > {
480
- Ok ( v. to_string ( ) )
481
- }
438
+ string_serialize_via_display ! ( serialize_bool, bool ) ;
439
+ string_serialize_via_display ! ( serialize_i8, i8 ) ;
440
+ string_serialize_via_display ! ( serialize_i16, i16 ) ;
441
+ string_serialize_via_display ! ( serialize_i32, i32 ) ;
442
+ string_serialize_via_display ! ( serialize_i64, i64 ) ;
443
+ string_serialize_via_display ! ( serialize_u8, u8 ) ;
444
+ string_serialize_via_display ! ( serialize_u16, u16 ) ;
445
+ string_serialize_via_display ! ( serialize_u32, u32 ) ;
446
+ string_serialize_via_display ! ( serialize_u64, u64 ) ;
447
+ string_serialize_via_display ! ( serialize_f32, f32 ) ;
448
+ string_serialize_via_display ! ( serialize_f64, f64 ) ;
449
+ string_serialize_via_display ! ( serialize_char, char ) ;
450
+ string_serialize_via_display ! ( serialize_str, & str ) ;
482
451
483
452
fn serialize_bytes ( self , v : & [ u8 ] ) -> Result < Self :: Ok > {
484
453
Ok ( String :: from_utf8_lossy ( v) . to_string ( ) )
0 commit comments