oni_comb_parser_rs/internal/parser_impl/
parser_runner_impl.rs1use crate::core::{ParseResult, ParseState, Parser, ParserRunner};
2
3impl<'a, I, A> ParserRunner<'a> for Parser<'a, I, A> {
4 type Input = I;
5 type Output = A;
6 type P<'m, X, Y: 'm>
7 = Parser<'m, X, Y>
8 where
9 X: 'm;
10
11 fn parse(&self, input: &'a [Self::Input]) -> ParseResult<'a, Self::Input, Self::Output> {
12 let parse_state = ParseState::new(input, 0);
13 self.run(&parse_state)
14 }
15
16 fn run(&self, param: &ParseState<'a, Self::Input>) -> ParseResult<'a, Self::Input, Self::Output> {
17 (self.method)(param)
18 }
19}