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

Method matches

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

Source from the content-addressed store, hash-verified

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

Calls 4

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