langtime 0.2.1

A rust library to parse english dates
Documentation
use chrono::prelude::*;
use nom::IResult;
use nom::branch::alt;
use nom::character::complete::space1;
use nom::combinator::map_res;
use nom::sequence::tuple;
use nom::bytes::complete::tag;
use crate::ParseConfig;

use crate::parsers::iso::parse_iso;
use crate::parsers::combined::dates;
use crate::parsers::combined::times;
use crate::utils::join_date_time;

pub fn full_datetime(config: &ParseConfig) -> impl Fn(&str) -> IResult<&str, DateTime<Local>, ()> + '_ {
    move |input: &str| {
        let (tail, dt) = alt((
            parse_iso,
            map_res(
                tuple((
                    dates(config),
                    alt((
                        tag(" at "),
                        space1
                    )),
                    times
                )),
                |(date, _, time)| join_date_time(date, time)
            )
        ))(input)?;

        Ok((tail, dt))
    }
}