@@ -419,53 +419,13 @@ impl ser::Serialize for TomlOptLevel {
419
419
}
420
420
}
421
421
422
- #[ derive( Clone , Debug , Serialize , Eq , PartialEq ) ]
423
- #[ serde( untagged) ]
422
+ #[ derive( Clone , Debug , Deserialize , Serialize , Eq , PartialEq ) ]
423
+ #[ serde( untagged, expecting = "expected a boolean or an integer" ) ]
424
424
pub enum U32OrBool {
425
425
U32 ( u32 ) ,
426
426
Bool ( bool ) ,
427
427
}
428
428
429
- impl < ' de > de:: Deserialize < ' de > for U32OrBool {
430
- fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
431
- where
432
- D : de:: Deserializer < ' de > ,
433
- {
434
- struct Visitor ;
435
-
436
- impl < ' de > de:: Visitor < ' de > for Visitor {
437
- type Value = U32OrBool ;
438
-
439
- fn expecting ( & self , formatter : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
440
- formatter. write_str ( "a boolean or an integer" )
441
- }
442
-
443
- fn visit_bool < E > ( self , b : bool ) -> Result < Self :: Value , E >
444
- where
445
- E : de:: Error ,
446
- {
447
- Ok ( U32OrBool :: Bool ( b) )
448
- }
449
-
450
- fn visit_i64 < E > ( self , u : i64 ) -> Result < Self :: Value , E >
451
- where
452
- E : de:: Error ,
453
- {
454
- Ok ( U32OrBool :: U32 ( u as u32 ) )
455
- }
456
-
457
- fn visit_u64 < E > ( self , u : u64 ) -> Result < Self :: Value , E >
458
- where
459
- E : de:: Error ,
460
- {
461
- Ok ( U32OrBool :: U32 ( u as u32 ) )
462
- }
463
- }
464
-
465
- deserializer. deserialize_any ( Visitor )
466
- }
467
- }
468
-
469
429
#[ derive( Deserialize , Serialize , Clone , Debug , Default , Eq , PartialEq ) ]
470
430
#[ serde( default , rename_all = "kebab-case" ) ]
471
431
pub struct TomlProfile {
@@ -770,46 +730,13 @@ impl<'de> de::Deserialize<'de> for StringOrVec {
770
730
}
771
731
}
772
732
773
- #[ derive( Clone , Debug , Serialize , Eq , PartialEq ) ]
774
- #[ serde( untagged) ]
733
+ #[ derive( Clone , Debug , Deserialize , Serialize , Eq , PartialEq ) ]
734
+ #[ serde( untagged, expecting = "expected a boolean or a string" ) ]
775
735
pub enum StringOrBool {
776
736
String ( String ) ,
777
737
Bool ( bool ) ,
778
738
}
779
739
780
- impl < ' de > de:: Deserialize < ' de > for StringOrBool {
781
- fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
782
- where
783
- D : de:: Deserializer < ' de > ,
784
- {
785
- struct Visitor ;
786
-
787
- impl < ' de > de:: Visitor < ' de > for Visitor {
788
- type Value = StringOrBool ;
789
-
790
- fn expecting ( & self , formatter : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
791
- formatter. write_str ( "a boolean or a string" )
792
- }
793
-
794
- fn visit_bool < E > ( self , b : bool ) -> Result < Self :: Value , E >
795
- where
796
- E : de:: Error ,
797
- {
798
- Ok ( StringOrBool :: Bool ( b) )
799
- }
800
-
801
- fn visit_str < E > ( self , s : & str ) -> Result < Self :: Value , E >
802
- where
803
- E : de:: Error ,
804
- {
805
- Ok ( StringOrBool :: String ( s. to_string ( ) ) )
806
- }
807
- }
808
-
809
- deserializer. deserialize_any ( Visitor )
810
- }
811
- }
812
-
813
740
#[ derive( PartialEq , Clone , Debug , Serialize ) ]
814
741
#[ serde( untagged) ]
815
742
pub enum VecStringOrBool {
0 commit comments