Function neure::re::zero_one

source ·
pub fn zero_one<'a, C, U>(unit: U) -> NeureZeroOne<C, U, C::Item, NullCond>where
    C: Context<'a>,
    U: Neu<C::Item>,
Expand description

Match zero or one item.

Example

    let sign = re::zero_one('+');
    let num = re::one_more('0'..='9');
    let mut ctx = CharsCtx::new("+2077");

    assert_eq!(ctx.try_mat(&sign)?, Span::new(0, 1));
    assert_eq!(ctx.try_mat(&num)?, Span::new(1, 4));

    let mut ctx = CharsCtx::new("2077");

    assert_eq!(ctx.try_mat(&sign)?, Span::new(0, 0));
    assert_eq!(ctx.try_mat(&num)?, Span::new(0, 4));
    Ok(())