in internal-tools/cargo-compare/src/diff.rs [113:192]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self.a.diff(&self.b) {
edit::Edit::Change(diff) => {
for (pkg_id, diff) in diff {
use diffus::edit::map::Edit;
let package = self.graph.metadata(pkg_id).expect("valid package ID");
match diff {
Edit::Copy(features) => {
if self.verbose {
writeln!(
f,
"{} {}: unchanged\n * features: {}",
package.name(),
package.version(),
features.iter().join(", ")
)?
}
}
Edit::Insert(features) => writeln!(
f,
"{} {}: added\n * new features: {}",
package.name(),
package.version(),
features.iter().join(", ")
)?,
Edit::Remove(features) => writeln!(
f,
"{} {}: removed\n * old features: {}",
package.name(),
package.version(),
features.iter().join(", "),
)?,
Edit::Change(diff) => {
writeln!(
f,
"{} {}: changed, features:",
package.name(),
package.version(),
)?;
for (feature_name, diff) in diff {
use diffus::edit::set::Edit;
match diff {
Edit::Copy(_) => {
if self.verbose {
writeln!(f, " * {}: unchanged", feature_name)?
}
}
Edit::Insert(_) => {
writeln!(f, " * {}: added", feature_name)?;
}
Edit::Remove(_) => {
writeln!(f, " * {}: removed", feature_name)?;
}
}
}
}
}
}
}
edit::Edit::Copy(map) => {
if self.verbose {
for (pkg_id, features) in map {
let package = self.graph.metadata(pkg_id).expect("valid package ID");
writeln!(
f,
"{} {}: unchanged\n * features: {}",
package.name(),
package.version(),
features.iter().join(", ")
)?;
}
}
}
}
Ok(())
}