oni_comb_parser_rs/internal/parser_impl/
parser_runner_impl.rs

1use 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}