@@ -419,53 +419,13 @@ impl ser::Serialize for TomlOptLevel {
419419 }
420420}
421421
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" ) ]
424424pub enum U32OrBool {
425425 U32 ( u32 ) ,
426426 Bool ( bool ) ,
427427}
428428
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-
469429#[ derive( Deserialize , Serialize , Clone , Debug , Default , Eq , PartialEq ) ]
470430#[ serde( default , rename_all = "kebab-case" ) ]
471431pub struct TomlProfile {
@@ -770,46 +730,13 @@ impl<'de> de::Deserialize<'de> for StringOrVec {
770730 }
771731}
772732
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" ) ]
775735pub enum StringOrBool {
776736 String ( String ) ,
777737 Bool ( bool ) ,
778738}
779739
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-
813740#[ derive( PartialEq , Clone , Debug , Serialize ) ]
814741#[ serde( untagged) ]
815742pub enum VecStringOrBool {
0 commit comments