pub trait SummaryFormatter {
// Required method
fn format_summary(
&self,
) -> (HashMap<NaiveDate, (String, String)>, String, String);
}Expand description
Renders calculated summaries for display.
Required Methods§
Sourcefn format_summary(
&self,
) -> (HashMap<NaiveDate, (String, String)>, String, String)
fn format_summary( &self, ) -> (HashMap<NaiveDate, (String, String)>, String, String)
Returns (per-date map of (duration, productivity), total, average),
durations as HH:MM and productivity as XX.X%.
use kasl::libs::summary::{DailySummary, SummaryFormatter};
use chrono::Duration;
let calculated_summaries: (Vec<DailySummary>, Duration, Duration) =
(vec![], Duration::zero(), Duration::zero());
let (daily_map, total_str, avg_str) = calculated_summaries.format_summary();
for (date, (duration, productivity)) in daily_map {
println!("{}: {} hours ({})", date, duration, productivity);
}
println!("Total: {}, Average: {}", total_str, avg_str);Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".