| 273 | } |
| 274 | |
| 275 | fn matches_pattern_recursive(pattern: &[char], value: &[char]) -> bool { |
| 276 | match (pattern.first(), value.first()) { |
| 277 | (None, None) => true, |
| 278 | (Some('*'), _) => { |
| 279 | // Try matching zero or more characters |
| 280 | Self::matches_pattern_recursive(&pattern[1..], value) |
| 281 | || (!value.is_empty() && Self::matches_pattern_recursive(pattern, &value[1..])) |
| 282 | } |
| 283 | (Some('?'), Some(_)) => Self::matches_pattern_recursive(&pattern[1..], &value[1..]), |
| 284 | (Some(p), Some(v)) if p == v => { |
| 285 | Self::matches_pattern_recursive(&pattern[1..], &value[1..]) |
| 286 | } |
| 287 | _ => false, |
| 288 | } |
| 289 | } |
| 290 | } |
| 291 | |
| 292 | /// Builder for creating delegation scopes. |