#[derive(Clone, Debug)]
pub(crate) struct ChangeEvent {
pub(crate) id: u64,
pub(crate) method: &'static str,
pub(crate) path: String,
pub(crate) etag: String,
}
pub(crate) fn pattern(raw: &str) -> String {
let p = raw.trim();
if p == "*" || p == "/*" || p == "/" || p.is_empty() {
"*".to_owned()
} else if p.starts_with('/') {
p.to_owned()
} else {
format!("/{p}")
}
}
pub(crate) fn matches(pattern: &str, path: &str) -> bool {
if pattern == "*" {
return true;
}
if let Some(prefix) = pattern.strip_suffix('*') {
path.starts_with(prefix)
} else {
path == pattern
}
}