[−][src]Enum logos::Filter
Type that can be returned from a callback, either producing a field for a token, or skipping it.
Example
use logos::{Logos, Filter}; #[derive(Logos, Debug, PartialEq)] enum Token { #[regex(r"[ \n\f\t]+", logos::skip)] #[error] Error, #[regex("[0-9]+", |lex| { let n: u64 = lex.slice().parse().unwrap(); // Only emit a token if `n` is an even number match n % 2 { 0 => Filter::Emit(n), _ => Filter::Skip, } })] EvenNumber(u64) } let tokens: Vec<_> = Token::lexer("20 11 42 23 100 8002").collect(); assert_eq!( tokens, &[ Token::EvenNumber(20), // skipping 11 Token::EvenNumber(42), // skipping 23 Token::EvenNumber(100), Token::EvenNumber(8002), ] );
Variants
Emit a token with a given value T
. Use ()
for unit variants without fields.
Skip current match, analog to Skip
.
Auto Trait Implementations
impl<T> RefUnwindSafe for Filter<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for Filter<T> where
T: Send,
T: Send,
impl<T> Sync for Filter<T> where
T: Sync,
T: Sync,
impl<T> Unpin for Filter<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for Filter<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,