MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / matches

Method matches

atomic-cli/src/commands/git/parallel.rs:353–378  ·  view source on GitHub ↗
(&self, path: &str)

Source from the content-addressed store, hash-verified

351 }
352
353 fn matches(&self, path: &str) -> bool {
354 let normalized = path.trim_start_matches('/').replace('\\', "/");
355 let basename = Path::new(&normalized)
356 .file_name()
357 .and_then(|name| name.to_str())
358 .unwrap_or(&normalized);
359
360 self.patterns.iter().any(|pattern| {
361 let pattern = pattern.trim_start_matches('/');
362 if let Some(dir) = pattern.strip_suffix('/') {
363 return normalized == dir
364 || normalized.starts_with(&format!("{dir}/"))
365 || normalized.contains(&format!("/{dir}/"));
366 }
367
368 if let Some(suffix) = pattern.strip_prefix("**/*") {
369 return normalized.ends_with(suffix);
370 }
371
372 if let Some(suffix) = pattern.strip_prefix('*') {
373 return basename.ends_with(suffix);
374 }
375
376 normalized == pattern || basename == pattern
377 })
378 }
379}
380
381// ═══════════════════════════════════════════════════════════════════════════

Calls 4

file_nameMethod · 0.80
replaceMethod · 0.45
iterMethod · 0.45
containsMethod · 0.45