use crate::TODO_DATE_FORMAT;
#[derive(Eq, PartialEq, Debug, Clone)]
pub enum TodoBodyToken {
Word(String),
Context(String),
Project(String),
ThresholdDate(time::Date),
DueDate(time::Date),
Hidden(bool),
}
impl std::fmt::Display for TodoBodyToken {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
use TodoBodyToken::*;
match self {
Word(s) => write!(f, "{}", s),
Context(s) => write!(f, "{}", s),
Project(s) => write!(f, "{}", s),
ThresholdDate(d) => write!(f, "t:{}", d.format(TODO_DATE_FORMAT)),
DueDate(d) => write!(f, "due:{}", d.format(TODO_DATE_FORMAT)),
Hidden(true) => write!(f, "h:1"),
Hidden(false) => write!(f, "h:0"),
}
}
}