1 // pest. The Elegant Parser
2 // Copyright (c) 2018 Dragoș Tiselice
3 //
4 // Licensed under the Apache License, Version 2.0
5 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT
6 // license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
7 // option. All files in the project carrying such notice may not be copied,
8 // modified, or distributed except according to those terms.
9 
10 use crate::position::Position;
11 
12 /// A token generated by a `Parser`.
13 #[derive(Clone, Debug, Eq, Hash, PartialEq)]
14 pub enum Token<'i, R> {
15     /// The starting `Position` of a matched `Rule`
16     Start {
17         /// matched rule
18         rule: R,
19         /// starting position
20         pos: Position<'i>,
21     },
22     /// The ending `Position` of a matched `Rule`
23     End {
24         /// matched rule
25         rule: R,
26         /// ending position
27         pos: Position<'i>,
28     },
29 }
30