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

Method matches

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

Source from the content-addressed store, hash-verified

238 }
239
240 fn matches(&self, path: &str) -> bool {
241 let normalized = path.trim_start_matches('/').replace('\\', "/");
242 let basename = Path::new(&normalized)
243 .file_name()
244 .and_then(|name| name.to_str())
245 .unwrap_or(&normalized);
246
247 self.patterns.iter().any(|pattern| {
248 let pattern = pattern.trim_start_matches('/');
249 if let Some(dir) = pattern.strip_suffix('/') {
250 return normalized == dir
251 || normalized.starts_with(&format!("{dir}/"))
252 || normalized.contains(&format!("/{dir}/"));
253 }
254
255 if let Some(suffix) = pattern.strip_prefix("**/*") {
256 return normalized.ends_with(suffix);
257 }
258
259 if let Some(suffix) = pattern.strip_prefix('*') {
260 return basename.ends_with(suffix);
261 }
262
263 normalized == pattern || basename == pattern
264 })
265 }
266}
267
268// ═══════════════════════════════════════════════════════════════════════════

Calls 4

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