@@ -586,6 +586,7 @@ impl<'gctx> Timings<'gctx> {
586
586
rmeta_time : Option < f64 > ,
587
587
unlocked_units : Vec < usize > ,
588
588
unlocked_rmeta_units : Vec < usize > ,
589
+ sections : Option < Vec < ( String , SectionData ) > > ,
589
590
}
590
591
let round = |x : f64 | ( x * 100.0 ) . round ( ) / 100.0 ;
591
592
let unit_data: Vec < UnitData > = self
@@ -599,7 +600,6 @@ impl<'gctx> Timings<'gctx> {
599
600
"todo"
600
601
}
601
602
. to_string ( ) ;
602
-
603
603
// These filter on the unlocked units because not all unlocked
604
604
// units are actually "built". For example, Doctest mode units
605
605
// don't actually generate artifacts.
@@ -613,6 +613,13 @@ impl<'gctx> Timings<'gctx> {
613
613
. iter ( )
614
614
. filter_map ( |unit| unit_map. get ( unit) . copied ( ) )
615
615
. collect ( ) ;
616
+ let aggregated = ut. aggregate_sections ( ) ;
617
+ let sections = match aggregated {
618
+ AggregatedSections :: Sections ( sections) => Some ( sections) ,
619
+ AggregatedSections :: OnlyMetadataTime { .. }
620
+ | AggregatedSections :: OnlyTotalDuration => None ,
621
+ } ;
622
+
616
623
UnitData {
617
624
i,
618
625
name : ut. unit . pkg . name ( ) . to_string ( ) ,
@@ -624,6 +631,7 @@ impl<'gctx> Timings<'gctx> {
624
631
rmeta_time : ut. rmeta_time . map ( round) ,
625
632
unlocked_units,
626
633
unlocked_rmeta_units,
634
+ sections,
627
635
}
628
636
} )
629
637
. collect ( ) ;
@@ -871,6 +879,7 @@ static HTML_TMPL: &str = r#"
871
879
--canvas-axes: #303030;
872
880
--canvas-grid: #e6e6e6;
873
881
--canvas-codegen: #aa95e8;
882
+ --canvas-link: #95e8aa;
874
883
--canvas-custom-build: #f0b165;
875
884
--canvas-not-custom-build: #95cce8;
876
885
--canvas-dep-line: #ddd;
0 commit comments