oxilean_parse/pattern/patterncompiler_flatten_or_pattern_group.rs
1//! # PatternCompiler - flatten_or_pattern_group Methods
2//!
3//! This module contains method implementations for `PatternCompiler`.
4//!
5//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
6
7use crate::Pattern;
8
9use super::patterncompiler_type::PatternCompiler;
10
11impl PatternCompiler {
12 /// Flatten a nested or-pattern into a flat list of alternatives.
13 pub fn flatten_or_pattern(&self, pattern: &Pattern) -> Vec<Pattern> {
14 match pattern {
15 Pattern::Or(left, right) => {
16 let mut result = self.flatten_or_pattern(&left.value);
17 result.extend(self.flatten_or_pattern(&right.value));
18 result
19 }
20 other => vec![other.clone()],
21 }
22 }
23}