Skip to main content

Module summary

Module summary 

Source
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§

DailySummary
One day’s line in the monthly summary.

Traits§

SummaryCalculator
Builds the monthly figures by chaining transformations:
SummaryFormatter
Renders calculated summaries for display.