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

Method matches

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

Source from the content-addressed store, hash-verified

299 }
300
301 fn matches(&self, path: &str) -> bool {
302 let normalized = path.trim_start_matches('/').replace('\\', "/");
303 let basename = Path::new(&normalized)
304 .file_name()
305 .and_then(|name| name.to_str())
306 .unwrap_or(&normalized);
307
308 self.patterns.iter().any(|pattern| {
309 let pattern = pattern.trim_start_matches('/');
310 if let Some(dir) = pattern.strip_suffix('/') {
311 return normalized == dir
312 || normalized.starts_with(&format!("{dir}/"))
313 || normalized.contains(&format!("/{dir}/"));
314 }
315
316 if let Some(suffix) = pattern.strip_prefix("**/*") {
317 return normalized.ends_with(suffix);
318 }
319
320 if let Some(suffix) = pattern.strip_prefix('*') {
321 return basename.ends_with(suffix);
322 }
323
324 normalized == pattern || basename == pattern
325 })
326 }
327}
328
329// ═══════════════════════════════════════════════════════════════════════════

Calls 4

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