pub trait Logos<'source>: Sized {
type Extras;
type Source: Source + ?Sized + 'source;
type Error: Default + Clone + PartialEq + Debug + 'source;
// Required method
fn lex(lexer: &mut Lexer<'source, Self>);
// Provided methods
fn lexer(source: &'source Self::Source) -> Lexer<'source, Self> ⓘ
where Self::Extras: Default { ... }
fn lexer_with_extras(
source: &'source Self::Source,
extras: Self::Extras,
) -> Lexer<'source, Self> ⓘ { ... }
}
Expand description
Trait implemented for an enum representing all tokens. You should never have
to implement it manually, use the #[derive(Logos)]
attribute on your enum.
Required Associated Types§
sourcetype Extras
type Extras
Associated type Extras
for the particular lexer. This can be set using
#[logos(extras = MyExtras)]
and accessed inside callbacks.
Required Methods§
Provided Methods§
Object Safety§
This trait is not object safe.