Migrate `CrateMetadata::graph_data()` from `HashMap` to `petgraph` representation

finchie
Apr 18, 2024, 5:13 AM
O7TNUABZ3VUPEYCLHORWVIVQCYC6SZRTD3XVLND54MI5L34IGSMAC

Dependencies

  • [2] Q3Z6XMP5 Migrate dependency tree to `petgraph::Graph`
  • [3] JVYWRCPT Add basic chart visualisation
  • [*] 7CVIL7UJ Create simple metadata parser

Change contents

  • edit in src/main.rs at line 7
    [2.136]
    [2.136]
    visit::{EdgeRef, IntoEdgeReferences, IntoEdgesDirected, NodeRef},
  • replacement in src/main.rs at line 59
    [3.306][3.306:389](),[3.389][2.1106:1169](),[2.1169][3.434:530](),[3.434][3.434:530]()
    .packages
    .iter()
    .zip(0..self.packages.len())
    .map(|(pkg, coords)| charming::series::GraphNode {
    id: pkg.id.repr.clone(),
    name: self.data[&pkg.id].name.clone(),
    [3.306]
    [3.530]
    .dependency_tree
    .node_weights()
    .enumerate()
    .map(|(coords, id)| charming::series::GraphNode {
    id: id.to_string(),
    name: self.data[*id].name.clone(),
  • replacement in src/main.rs at line 75
    [3.787][3.787:983]()
    .node_index
    .values()
    .map(|node| {
    node.deps
    .iter()
    .map(move |child| (node, child.pkg.repr.clone()))
    [3.787]
    [3.983]
    .dependency_tree
    .edge_indices()
    .map(|edge_idx| self.dependency_tree.edge_endpoints(edge_idx))
    .filter_map(|optional_endpoints| optional_endpoints)
    .map(|(source_idx, target_idx)| {
    (
    &self.dependency_tree[source_idx],
    &self.dependency_tree[target_idx],
    )
  • replacement in src/main.rs at line 85
    [3.998][3.998:1021](),[3.1021][2.1170:1235](),[2.1235][3.1068:1147](),[3.1068][3.1068:1147]()
    .flatten()
    .map(|(parent, child)| charming::series::GraphLink {
    source: parent.id.repr.clone(),
    target: child,
    [3.998]
    [3.1147]
    .map(|(source, target)| charming::series::GraphLink {
    source: source.repr.clone(),
    target: target.repr.clone(),