Function parsit::test::lexer_test::expect

source ·
pub fn expect<'a, T>(src: &'a str, tokens: Vec<T>)where
    T: Logos<'a, Source = str> + Debug + PartialEq,
    T::Extras: Default,
Expand description

ensures the given output is expected

Example

use logos::Logos;
use crate::parsit::test::lexer_test::expect;

#[derive(Logos, Debug, PartialEq)]
pub enum T<'a> {
    #[regex(r"[a-zA-Z-]+")]
    Word(&'a str),

    #[token(",")]
    Comma,
    #[token(".")]
    Dot,

    #[token("!")]
    Bang,
    #[token("?")]
    Question,

    #[regex(r"[ \t\r\n]+", logos::skip)]
    Whitespace,
}
    expect::<T>(
        "abc, bcs!",
        vec![T::Word("abc"), T::Comma, T::Word("bcs"), T::Bang]
    )