bartib 1.0.1

A simple timetracker for the command line
Documentation
use anyhow::Result;

use crate::data::activity;
use crate::data::bartib_file;
use crate::data::getter;
use crate::view::report;

pub fn show_report(file_name: &str, filter: getter::ActivityFilter) -> Result<()> {
    let file_content = bartib_file::get_file_content(file_name)?;
    let activities = getter::get_activities(&file_content);
    let mut filtered_activities: Vec<&activity::Activity> =
        getter::filter_activities(activities, &filter).collect();

    filtered_activities.sort_by_key(|activity| activity.start);


    let first_element = filtered_activities.len().saturating_sub(filter.number_of_activities.unwrap_or(filtered_activities.len()));

    report::show_activities(&filtered_activities[first_element..filtered_activities.len()]);

    Ok(())
}