From 59758226f37bd8f10afcf135b807bdea15a5d5ff Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Wed, 1 Jan 2025 19:00:34 +0100 Subject: Match against all properties if only regex given. --- src/main.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index f9c9685..4aeca51 100644 --- a/src/main.rs +++ b/src/main.rs @@ -71,7 +71,12 @@ fn match_event(event: &ical::parser::ical::component::IcalEvent, pattern: &str) } else { let parts: Vec<&str> = pattern.split(':').collect(); - let (key, pat) = (parts[0].to_uppercase(), parts[1]); + + let (key, pat) = if parts.len() == 2 { + (parts[0].to_uppercase(), parts[1]) + } else { + (String::from("*"), parts[0]) + }; let re = RegexBuilder::new(&pat) .case_insensitive(true) @@ -79,7 +84,7 @@ fn match_event(event: &ical::parser::ical::component::IcalEvent, pattern: &str) .unwrap(); event.properties.iter() - .filter(|ref p| p.name == key && re.is_match(&p.value.clone().unwrap())) + .filter(|ref p| (&key == "*" || p.name == key) && re.is_match(&p.value.clone().unwrap())) .count() > 0 } } -- cgit v1.2.3