in guppy-summaries/src/report.rs [88:185]
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
for (summary_id, status) in self.sorted {
write!(
f,
" {} {} {} ({}, {})",
status.tag(),
summary_id.name,
summary_id.version,
status.latest_status(),
summary_id.source
)?;
// Print out other versions if available.
if let Some(unchanged_list) = self.package_diff.unchanged.get(summary_id.name.as_str())
{
write!(f, " (other versions: ")?;
display_list(f, unchanged_list.iter().map(|(version, _, _)| *version))?;
write!(f, ")")?;
}
writeln!(f)?;
match status {
SummaryDiffStatus::Added { info } => {
write!(f, " * features: ")?;
display_list(f, &info.features)?;
writeln!(f)?;
}
SummaryDiffStatus::Removed { old_info } => {
write!(f, " * (old features: ")?;
display_list(f, &old_info.features)?;
writeln!(f, ")")?;
}
SummaryDiffStatus::Modified {
old_version,
old_source,
old_status,
// The new status is printed in the package header.
new_status: _,
added_features,
removed_features,
unchanged_features,
added_optional_deps,
removed_optional_deps,
unchanged_optional_deps,
} => {
if let Some(old_version) = old_version {
let change_str = if summary_id.version > **old_version {
"upgraded"
} else {
"DOWNGRADED"
};
writeln!(f, " * version {} from {}", change_str, old_version)?;
}
if let Some(old_source) = old_source {
writeln!(f, " * source changed from {}", old_source)?;
}
if let Some(old_status) = old_status {
writeln!(f, " * status changed from {}", old_status)?;
}
// ---
if !added_features.is_empty() {
write!(f, " * added features: ")?;
display_list(f, added_features.iter().copied())?;
writeln!(f)?;
}
if !removed_features.is_empty() {
write!(f, " * removed features: ")?;
display_list(f, removed_features.iter().copied())?;
writeln!(f)?;
}
write!(f, " * (unchanged features: ")?;
display_list(f, unchanged_features.iter().copied())?;
writeln!(f, ")")?;
// ---
if !added_optional_deps.is_empty() {
write!(f, " * added optional dependencies: ")?;
display_list(f, added_optional_deps.iter().copied())?;
writeln!(f)?;
}
if !removed_optional_deps.is_empty() {
write!(f, " * removed optional dependencies: ")?;
display_list(f, removed_optional_deps.iter().copied())?;
writeln!(f)?;
}
write!(f, " * (unchanged optional dependencies: ")?;
display_list(f, unchanged_optional_deps.iter().copied())?;
writeln!(f, ")")?;
}
}
}
Ok(())
}