Skip to main content

SummaryFormatter

Trait SummaryFormatter 

Source
pub trait SummaryFormatter {
    // Required method
    fn format_summary(
        &self,
    ) -> (HashMap<NaiveDate, (String, String)>, String, String);
}
Expand description

Renders calculated summaries for display.

Required Methods§

Source

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".

Implementations on Foreign Types§

Source§

impl SummaryFormatter for (Vec<DailySummary>, Duration, Duration)

Implementors§