genee 0.9.3

A habit tracker app with command-line interface
Documentation
use ratatui::{prelude::*, widgets::*};

pub fn get_table_header<'a>(header: &[(String, usize)], first: &'a str) -> Row<'a> {
    let mut cells = vec![Cell::new(first)];
    for (name, _idx) in header {
        cells.push(Cell::new(name.clone()));
    }
    Row::new(cells).add_modifier(Modifier::BOLD)
}

pub fn decode_habit_vector(categories: &[(String, usize)], ids: &[usize]) -> Vec<bool> {
    let mut v = vec![];
    for (_, cat_id) in categories {
        v.push(ids.contains(cat_id));
    }
    v
}

pub fn encode_habit_vector(categories: &[(String, usize)], entries: &[bool]) -> Vec<usize> {
    assert_eq!(categories.len(), entries.len());
    let mut entry_ids = vec![];
    for (val, (_name, cat_id)) in entries.iter().zip(categories.iter()) {
        if *val {
            entry_ids.push(*cat_id);
        }
    }
    entry_ids
}