[−][src]Trait logos::Logos
Trait implemented for an enum representing all tokens. You should never have
to implement it manually, use the #[derive(Logos)] attribute on your enum.
Associated Types
type Extras: Default
Associated type Extras for the particular lexer. This can be set using
#[logos(extras = MyExtras)] and accessed inside callbacks.
type Source: Source + ?Sized + 'source
Source type this token can be lexed from. This will default to str,
unless one of the defined patterns explicitly uses non-unicode byte values
or byte slices, in which case that implementation will use [u8].
Associated Constants
const SIZE: usize
SIZE is simply a number of possible variants of the Logos enum. The
derive macro will make sure that all variants don't hold values larger
or equal to SIZE.
This can be extremely useful for creating Logos Lookup Tables.
const ERROR: Self
Helper const of the variant marked as #[error].
Required methods
fn lex(lexer: &mut Lexer<'source, Self>)
The heart of Logos. Called by the Lexer. The implementation for this function
is generated by the logos-derive crate.
Provided methods
fn lexer(source: &'source Self::Source) -> Lexer<'source, Self>ⓘ
Create a new instance of a Lexer that will produce tokens implementing
this Logos.