iowo/src/utils.rs

13 lines
535 B
Rust

use winnow::ascii::space0;
// from https://docs.rs/winnow/latest/winnow/_topic/language/index.html#whitespace
use winnow::prelude::*;
use winnow::{ascii::multispace0, combinator::delimited, error::ParserError};
/// A combinator that takes a parser `inner` and produces a parser that also consumes both leading and
/// trailing whitespace, returning the output of `inner`.
pub fn ws<'a, F, O, E: ParserError<&'a str>>(inner: F) -> impl Parser<&'a str, O, E>
where
F: Parser<&'a str, O, E>,
{
delimited(space0, inner, space0)
}