mipl 0.2.1

Minimal Imperative Parsing Library
Documentation
use super::*;

impl PeekerItem for TabToken {
    fn from_tok(token: Token) -> Option<Self> {
        if let Token::Tab(TabToken) = token {
            Some(TabToken)
        } else {
            None
        }
    }
}

/// Match a tab. Works only if the tokenizer
/// consider the tab character `\t` among the [KeepDelimiters].
pub struct IsTab;
impl Peeker for IsTab {
    type Item = TabToken;

    fn peek_for_token(&self, parser: &mut Parser) -> Option<Token> {
        match parser.peek()? {
            Token::Tab(_) => Some(Token::Tab(TabToken)),
            _ => None
        }
    }
}
impl ContainerCp for IsTab {
    type ContainedType = ();
    type Input = ();

    fn new_contained(_value: Self::Input) -> Self::ContainedType {
        ()
    }
    fn new(_value: Self::Input) -> Self {
        IsTab
    }
}