parsy 0.2.1

An easy-to-use, efficient parser combinators library
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::{PResult, Parser, ParserInput};

#[derive(Clone)]
pub struct Custom<F: Fn(&mut ParserInput) -> PResult<O>, O> {
    func: F,
}

impl<F: Fn(&mut ParserInput) -> PResult<O>, O> Custom<F, O> {
    pub fn new(func: F) -> Self {
        Self { func }
    }
}

impl<F: Fn(&mut ParserInput) -> PResult<O>, O> Parser<O> for Custom<F, O> {
    fn parse_inner(&self, input: &mut ParserInput) -> PResult<O> {
        (self.func)(input)
    }
}