cargo-depgraph 1.3.1

Creates dependency graphs for cargo projects using `cargo metadata` and graphviz.
1
2
3
4
5
6
7
8
9
10
11
12
13
use std::{cell::Cell, collections::HashMap, rc::Rc};

use crate::graph::DepGraph;

pub fn set_name_stats(graph: &mut DepGraph) {
    let mut name_uses_map = HashMap::<String, Rc<Cell<u16>>>::new();
    for pkg in graph.node_weights_mut() {
        let name_uses = name_uses_map.entry(pkg.name.clone()).or_default().clone();
        name_uses.set(name_uses.get() + 1);

        pkg.name_uses = Some(name_uses);
    }
}