pub struct Token<'a, K: TokenKind> {
pub kind: K,
pub start: usize,
pub end: usize,
pub text: &'a str,
pub skip: bool,
pub next: Option<Box<Token<'a, K>>>,
pub skipped: Vec<Token<'a, K>>,
pub captures: Option<Vec<Option<(usize, usize)>>>,
}
Expand description
Represents a detected token
Fields§
§kind: K
§start: usize
§end: usize
§text: &'a str
§skip: bool
§next: Option<Box<Token<'a, K>>>
In some cases (viz. when an “unrecognized” token is returned), whatever token comes next is cached here.
skipped: Vec<Token<'a, K>>
The tokens skipped over to get here.
captures: Option<Vec<Option<(usize, usize)>>>
Implementations§
Source§impl<'a, K: TokenKind> Token<'a, K>
impl<'a, K: TokenKind> Token<'a, K>
pub fn new(source: &'a str, kind: K, start: usize, end: usize) -> Token<'a, K>
pub fn from_text(kind: K, text: &'a str, start: usize) -> Token<'a, K>
pub fn eof(source: &'a str) -> Token<'a, K>
pub fn skip(self, skip: bool) -> Self
pub fn skipped(self, skipped: Vec<Token<'a, K>>) -> Self
pub fn next(self, next: Option<Box<Token<'a, K>>>) -> Self
pub fn captures(self, captures: Option<Vec<Option<(usize, usize)>>>) -> Self
pub fn get_capture(&self, idx: usize) -> Option<TokenCapture<'a>>
Trait Implementations§
impl<'a, K: TokenKind> StructuralPartialEq for Token<'a, K>
Auto Trait Implementations§
impl<'a, K> Freeze for Token<'a, K>where
K: Freeze,
impl<'a, K> RefUnwindSafe for Token<'a, K>where
K: RefUnwindSafe,
impl<'a, K> Send for Token<'a, K>where
K: Send,
impl<'a, K> Sync for Token<'a, K>where
K: Sync,
impl<'a, K> Unpin for Token<'a, K>where
K: Unpin,
impl<'a, K> UnwindSafe for Token<'a, K>where
K: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more