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
use crate::{Error, ParsePart}; use nom::bytes::complete::take_until; #[cfg(feature = "chrono-timestamp")] impl<'a> ParsePart<'a> for Option<crate::parser::DateTime> { fn parse(part: &'a str) -> Result<(&'a str, Self), Error> { let (rem, word) = take_until(" ")(part)?; match word { "-" => Ok((rem, None)), _ => { let dt = chrono::DateTime::parse_from_rfc3339(word)?; Ok((rem, Some(dt))) } } } } impl<'a> ParsePart<'a> for Option<&'a str> { fn parse(part: &'a str) -> Result<(&'a str, Self), Error> { let (rem, word) = take_until(" ")(part)?; match word { "-" => Ok((rem, None)), _ => Ok((rem, Some(word))), } } }