Use timings `duration` to set size of rendered node
Dependencies
- [2]
UXJFRBBLMove graph functionality into `graph` module - [3]
T34OV3YQStore timings output in `timings::Output` struct - [4]
JVYWRCPTAdd basic chart visualisation - [5]
ZPFD3275Switch from `cargo_metadata`+`petgraph` to `guppy` - [6]
Q3Z6XMP5Migrate dependency tree to `petgraph::Graph` - [*]
LOR3KOXGParse JSON output from `cargo build --timings` - [*]
7CVIL7UJCreate simple metadata parser
Change contents
- edit in src/timings.rs at line 140
}pub fn pkg_time(&self, pkg: &PackageId) -> Option<f64> {self.repr.get(pkg).map(|timings| timings.iter().map(|msg| msg.duration).sum()) - replacement in src/main.rs at line 18
.data(graph::data(&package_graph)),.data(graph::data(&package_graph, &timings)), - edit in src/graph.rs at line 1
use crate::timings; - replacement in src/graph.rs at line 46
pub fn data(graph: &PackageGraph) -> charming::series::GraphData {pub fn data(graph: &PackageGraph, timings: &timings::Output) -> charming::series::GraphData { - replacement in src/graph.rs at line 54
.map(|(id, node)| charming::series::GraphNode {id: id.repr().to_string(),name: graph.metadata(id).unwrap().name().to_string(),x: node.pos.x(),y: node.pos.y(),value: 1_f64,category: 0,symbol_size: 1_f64,label: None,.map(|(id, node)| {let unit_time = if let Some(duration) = timings.pkg_time(id) {duration} else {// TODO: once using the resolved crate graph, `None` should never appearprintln!("Queried node outside cargo's unit graph: {id}");0_f64};// TODO: figure out the difference between `value` and `symbol_size`charming::series::GraphNode {id: id.repr().to_string(),name: graph.metadata(id).unwrap().name().to_string(),x: node.pos.x(),y: node.pos.y(),value: unit_time,category: 0,symbol_size: unit_time,label: None,}