@@ -373,6 +373,18 @@ impl TomlProfiles {
373373#[ derive( Clone , Debug , Eq , PartialEq ) ]
374374pub struct TomlOptLevel ( pub String ) ;
375375
376+ impl ser:: Serialize for TomlOptLevel {
377+ fn serialize < S > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error >
378+ where
379+ S : ser:: Serializer ,
380+ {
381+ match self . 0 . parse :: < u32 > ( ) {
382+ Ok ( n) => n. serialize ( serializer) ,
383+ Err ( _) => self . 0 . serialize ( serializer) ,
384+ }
385+ }
386+ }
387+
376388impl < ' de > de:: Deserialize < ' de > for TomlOptLevel {
377389 fn deserialize < D > ( d : D ) -> Result < TomlOptLevel , D :: Error >
378390 where
@@ -397,18 +409,6 @@ impl<'de> de::Deserialize<'de> for TomlOptLevel {
397409 }
398410}
399411
400- impl ser:: Serialize for TomlOptLevel {
401- fn serialize < S > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error >
402- where
403- S : ser:: Serializer ,
404- {
405- match self . 0 . parse :: < u32 > ( ) {
406- Ok ( n) => n. serialize ( serializer) ,
407- Err ( _) => self . 0 . serialize ( serializer) ,
408- }
409- }
410- }
411-
412412#[ derive( Copy , Clone , Debug , Eq , PartialEq , Hash , PartialOrd , Ord ) ]
413413pub enum TomlDebugInfo {
414414 None ,
@@ -418,6 +418,18 @@ pub enum TomlDebugInfo {
418418 Full ,
419419}
420420
421+ impl Display for TomlDebugInfo {
422+ fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
423+ match self {
424+ TomlDebugInfo :: None => f. write_char ( '0' ) ,
425+ TomlDebugInfo :: Limited => f. write_char ( '1' ) ,
426+ TomlDebugInfo :: Full => f. write_char ( '2' ) ,
427+ TomlDebugInfo :: LineDirectivesOnly => f. write_str ( "line-directives-only" ) ,
428+ TomlDebugInfo :: LineTablesOnly => f. write_str ( "line-tables-only" ) ,
429+ }
430+ }
431+ }
432+
421433impl ser:: Serialize for TomlDebugInfo {
422434 fn serialize < S > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error >
423435 where
@@ -483,18 +495,6 @@ impl<'de> de::Deserialize<'de> for TomlDebugInfo {
483495 }
484496}
485497
486- impl Display for TomlDebugInfo {
487- fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
488- match self {
489- TomlDebugInfo :: None => f. write_char ( '0' ) ,
490- TomlDebugInfo :: Limited => f. write_char ( '1' ) ,
491- TomlDebugInfo :: Full => f. write_char ( '2' ) ,
492- TomlDebugInfo :: LineDirectivesOnly => f. write_str ( "line-directives-only" ) ,
493- TomlDebugInfo :: LineTablesOnly => f. write_str ( "line-tables-only" ) ,
494- }
495- }
496- }
497-
498498#[ derive( Deserialize , Serialize , Clone , Debug , Default , Eq , PartialEq ) ]
499499#[ serde( default , rename_all = "kebab-case" ) ]
500500pub struct TomlProfile {
@@ -526,6 +526,15 @@ pub enum ProfilePackageSpec {
526526 All ,
527527}
528528
529+ impl fmt:: Display for ProfilePackageSpec {
530+ fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
531+ match self {
532+ ProfilePackageSpec :: Spec ( spec) => spec. fmt ( f) ,
533+ ProfilePackageSpec :: All => f. write_str ( "*" ) ,
534+ }
535+ }
536+ }
537+
529538impl ser:: Serialize for ProfilePackageSpec {
530539 fn serialize < S > ( & self , s : S ) -> Result < S :: Ok , S :: Error >
531540 where
@@ -551,15 +560,6 @@ impl<'de> de::Deserialize<'de> for ProfilePackageSpec {
551560 }
552561}
553562
554- impl fmt:: Display for ProfilePackageSpec {
555- fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
556- match self {
557- ProfilePackageSpec :: Spec ( spec) => spec. fmt ( f) ,
558- ProfilePackageSpec :: All => f. write_str ( "*" ) ,
559- }
560- }
561- }
562-
563563impl TomlProfile {
564564 /// Checks stytax validity and unstable feature gate for a given profile.
565565 pub fn validate (
@@ -3255,21 +3255,21 @@ struct TomlTarget {
32553255#[ derive( Clone ) ]
32563256struct PathValue ( PathBuf ) ;
32573257
3258- impl < ' de > de :: Deserialize < ' de > for PathValue {
3259- fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
3258+ impl ser :: Serialize for PathValue {
3259+ fn serialize < S > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error >
32603260 where
3261- D : de :: Deserializer < ' de > ,
3261+ S : ser :: Serializer ,
32623262 {
3263- Ok ( PathValue ( String :: deserialize ( deserializer ) ? . into ( ) ) )
3263+ self . 0 . serialize ( serializer )
32643264 }
32653265}
32663266
3267- impl ser :: Serialize for PathValue {
3268- fn serialize < S > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error >
3267+ impl < ' de > de :: Deserialize < ' de > for PathValue {
3268+ fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
32693269 where
3270- S : ser :: Serializer ,
3270+ D : de :: Deserializer < ' de > ,
32713271 {
3272- self . 0 . serialize ( serializer )
3272+ Ok ( PathValue ( String :: deserialize ( deserializer ) ? . into ( ) ) )
32733273 }
32743274}
32753275
0 commit comments