use winnow::{
Parser, Result,
combinator::{alt, preceded},
};
use super::token::Token;
pub fn parse_today(input: &mut &str) -> Result<Token> {
preceded('@', alt(("today", "tod", "tdy", "t"))).parse_next(input)?;
Ok(Token::TodayFlag)
}
#[cfg(test)]
mod tests {
use crate::parser::task::{parse_today::parse_today, token::Token};
#[test]
fn test_parse_today_tag() {
let mut with_today = "@t";
assert_eq!(parse_today(&mut with_today), Ok(Token::TodayFlag));
let mut with_today = "@today";
assert_eq!(parse_today(&mut with_today), Ok(Token::TodayFlag));
let mut with_today = "@tdy";
assert_eq!(parse_today(&mut with_today), Ok(Token::TodayFlag));
}
#[test]
fn test_parse_today_tag_fail() {
let mut should_fail = "today";
assert!(parse_today(&mut should_fail).is_err());
}
}