Functionally the same output as before, but much more elegant. Will need to figure out a solution for graph layout, as charming
doesn't seem to provide a solution out of the box.
O7TNUABZ3VUPEYCLHORWVIVQCYC6SZRTD3XVLND54MI5L34IGSMAC
.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(),
.dependency_tree
.node_weights()
.enumerate()
.map(|(coords, id)| charming::series::GraphNode {
id: id.to_string(),
name: self.data[*id].name.clone(),
.node_index
.values()
.map(|node| {
node.deps
.iter()
.map(move |child| (node, child.pkg.repr.clone()))
.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],
)
.flatten()
.map(|(parent, child)| charming::series::GraphLink {
source: parent.id.repr.clone(),
target: child,
.map(|(source, target)| charming::series::GraphLink {
source: source.repr.clone(),
target: target.repr.clone(),