1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
mod casual_date_time; mod deadline; mod exact_month_date; mod past_time; mod time; mod weekdays; use crate::rules::combinators; use crate::rules::common; use crate::rules::common_matchers; use crate::rules::consts; use crate::rules::errors; use crate::rules::rules; use crate::rules::tokens; use chrono::{offset::TimeZone, DateTime}; pub fn parse<'a, Tz: TimeZone + 'a>( tz_aware: DateTime<Tz>, input: &'a str, exact_match: bool, ) -> Vec<Result<rules::MatchResult, errors::DateTimeError>> { let input_lowered = input.to_lowercase(); combinators::apply_generic( tz_aware, &input_lowered, &[ weekdays::interpret::<Tz>, time::interpret::<Tz>, past_time::interpret::<Tz>, exact_month_date::interpret::<Tz>, deadline::interpret::<Tz>, casual_date_time::interpret::<Tz>, common::slash_dmy::interpret::<Tz>, ], exact_match, ) }