Skip to content

Commit e476251

Browse files
committed
refactor(toml): Consistently lay out fmt/serde impls
The theory of organization - Built-in impls first (`Display` in this case) - `Serialize` next to `Display` since they are related
1 parent 794d0a8 commit e476251

File tree

1 file changed

+41
-41
lines changed

1 file changed

+41
-41
lines changed

src/cargo/util/toml/mod.rs

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,18 @@ impl TomlProfiles {
373373
#[derive(Clone, Debug, Eq, PartialEq)]
374374
pub 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+
376388
impl<'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)]
413413
pub 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+
421433
impl 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")]
500500
pub 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+
529538
impl 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-
563563
impl 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)]
32563256
struct 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

Comments
 (0)