use super::funejson::Value; use super::todo_group_by_due_group_by_due_with_order::{due_group_to_value, group_by_due_with_order}; use super::todo_item::Todo; use super::todo_item_validate_todo::todos_from_value; /// Todos in planner sections, fixed order, empty sections left out. Sections /// spanning several dates are sorted by due date, stably; the rest keep the /// caller's order. /// /// # Panics /// Panics on an impossible or malformed date. pub fn group_by_due(todos: &[Todo], today: &str) -> Vec { group_by_due_with_order(todos, today, "due") } pub fn fune_vector(args: &[Value]) -> Value { let groups = group_by_due(&todos_from_value(&args[0]), args[1].as_str()); Value::Arr(groups.iter().map(due_group_to_value).collect()) }