todox/src/app/td.rs
2024-07-17 08:11:57 +03:00

29 lines
1.1 KiB
Rust

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());
}