harper_core/patterns/
naive_pattern_group.rs1use super::Pattern;
2use crate::Token;
3
4#[derive(Default)]
7pub struct NaivePatternGroup {
8 patterns: Vec<Box<dyn Pattern>>,
9}
10
11impl NaivePatternGroup {
12 pub fn push(&mut self, pattern: Box<dyn Pattern>) {
13 self.patterns.push(pattern);
14 }
15}
16
17impl Pattern for NaivePatternGroup {
18 fn matches(&self, tokens: &[Token], source: &[char]) -> Option<usize> {
19 self.patterns
20 .iter()
21 .filter_map(|p| p.matches(tokens, source))
22 .next()
23 }
24}