parsy 0.2.1

An easy-to-use, efficient parser combinators library
Documentation
use crate::{container::NoAllocContainer, filter, Parser};

pub fn whitespace() -> impl Parser<char> + Clone {
    filter(|c| c.is_whitespace())
}

pub fn digit(radix: u32) -> impl Parser<char> + Clone {
    filter(move |c| c.is_digit(radix))
}

pub fn digits(radix: u32) -> impl Parser<NoAllocContainer> + Clone {
    digit(radix).repeated().at_least(1)
}

pub fn digits_vec<O>(radix: u32) -> impl Parser<Vec<char>> + Clone {
    digit(radix).repeated_vec().at_least(1)
}

pub fn alphabetic() -> impl Parser<char> + Clone {
    filter(|c| c.is_alphabetic())
}

pub fn alphanumeric() -> impl Parser<char> + Clone {
    filter(|c| c.is_alphanumeric())
}

pub fn any_char() -> impl Parser<char> + Clone {
    filter(|_| true)
}