Expand description
Monthly summary math: fold in rest days, total and average, format.
use kasl::libs::summary::{DailySummary, SummaryCalculator, SummaryFormatter};
use chrono::{Duration, NaiveDate};
use std::collections::HashSet;
let summaries = vec![
DailySummary {
date: NaiveDate::from_ymd_opt(2025, 8, 11).unwrap(),
duration: Duration::hours(8),
productivity: 85.5,
},
];
let rest_dates = HashSet::new();
let (processed, total, average) = summaries
.add_rest_dates(rest_dates, Duration::hours(8))
.calculate_totals();Structs§
- Daily
Summary - One day’s line in the monthly summary.
Traits§
- Summary
Calculator - Builds the monthly figures by chaining transformations:
- Summary
Formatter - Renders calculated summaries for display.