use std::borrow::Cow; use chrono::Utc; use crate::prelude::*; pub type TdFn<'a> = fn((usize, &'a Task)) -> Cow<'a, str>; // // kind of ugly but don't want to think about it rn too much pub fn id <'a> ((idx, _task): (usize, &'a Task)) -> Cow<'a, str> { return Cow::Owned(idx.to_string()); } pub fn name <'a> ((_idx, task): (usize, &'a Task)) -> Cow<'a, str> { return Cow::Borrowed(&task.name); } pub fn description <'a> ((_idx, task): (usize, &'a Task)) -> Cow<'a, str> { return Cow::Owned(task.description.replace(['\n', '\t', '\r'], " ")); } pub fn expiry <'a> ((_idx, task): (usize, &'a Task)) -> Cow<'a, str> { return Cow::Owned(task.expiring_at.map(|e| utils::dt_format(e - Utc::now())).unwrap_or_default()); } pub fn status <'a> ((_idx, task): (usize, &'a Task)) -> Cow<'a, str> { return Cow::Owned(String::from("tl")); // return Cow::Owned(task.expiring_at.map(|e| e.to_rfc2822()).unwrap_or_default()); } pub fn kind <'a> ((_idx, task): (usize, &'a Task)) -> Cow<'a, str> { return Cow::Owned(String::from("kind")); // return Cow::Owned(task.expiring_at.map(|e| e.to_rfc2822()).unwrap_or_default()); }