credence_lib/resolve/
date_time.rs

1use {
2    chrono::*,
3    compris::resolve::*,
4    dateparser::*,
5    kutil::std::string::{ParseError, ParseStr},
6};
7
8/// [DateTime] that implements [Resolve].
9pub type ResolveDateTime = ResolveParseStr<DateTime<Utc>, ParseDateTime>;
10
11//
12// ParseDateTime
13//
14
15/// [ParseStr] for [DateTime].
16///
17/// See [dateparser](https://docs.rs/dateparser/latest/dateparser/#accepted-date-formats).
18#[derive(Clone, Default, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
19pub struct ParseDateTime {}
20
21impl ParseStr<DateTime<Utc>> for ParseDateTime {
22    fn parse(representation: &str) -> Result<DateTime<Utc>, ParseError> {
23        parse(representation).map_err(|error| error.to_string().into())
24    }
25}