flexitime 0.1.0

A flexible time parsing library for Rust
Documentation
use nom::{
    Parser,
    branch::alt,
    bytes::tag_no_case,
    character::complete::space1,
    combinator::{opt, value},
    sequence::preceded,
};

use crate::error::FlexitimeResult2;

#[derive(Debug, Clone, Copy, PartialEq)]
pub enum Suffix {
    Ago,
    Hence,
}

pub fn parse_suffix(input: &str) -> FlexitimeResult2<&str, Option<Suffix>> {
    opt(preceded(
        space1,
        alt((
            value(Suffix::Ago, tag_no_case("ago")),
            value(Suffix::Hence, tag_no_case("hence")),
        )),
    ))
    .parse(input)
}