harper_core/patterns/
whitespace_pattern.rs

1use super::Pattern;
2
3pub struct WhitespacePattern;
4
5impl Pattern for WhitespacePattern {
6    fn matches(&self, tokens: &[crate::Token], _source: &[char]) -> Option<usize> {
7        let count = tokens
8            .iter()
9            .position(|t| !t.kind.is_whitespace())
10            .unwrap_or(tokens.len());
11
12        if count == 0 { None } else { Some(count) }
13    }
14}