1use binator_core::{
2 Parse,
3 Parsed,
4};
5
6#[derive(Clone)]
8pub struct To<Parser, OtherToken> {
9 parser: Parser,
10 to: OtherToken,
11}
12
13impl<Stream, Context, Parser, OtherToken> Parse<Stream, Context> for To<Parser, OtherToken>
14where
15 Parser: Parse<Stream, Context>,
16 OtherToken: Clone,
17{
18 type Token = OtherToken;
19
20 fn parse(&mut self, stream: Stream) -> Parsed<OtherToken, Stream, Context> {
21 self.parser.parse(stream).map_token(|_| self.to.clone())
22 }
23}
24
25pub fn to<Stream, Context, Parser, OtherToken>(
27 parser: Parser, to: OtherToken,
28) -> To<Parser, OtherToken>
29where
30 Parser: Parse<Stream, Context>,
31 OtherToken: Clone,
32{
33 To { parser, to }
34}