diff options
Diffstat (limited to 'crates/shirabe-pcre/src')
| -rw-r--r-- | crates/shirabe-pcre/src/preg.rs | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/crates/shirabe-pcre/src/preg.rs b/crates/shirabe-pcre/src/preg.rs index 10ed1d5b..55388a9f 100644 --- a/crates/shirabe-pcre/src/preg.rs +++ b/crates/shirabe-pcre/src/preg.rs @@ -57,22 +57,16 @@ impl Preg { } pub fn match_all(pattern: impl PregPattern, subject: &str) -> usize { - Self::match_all3(pattern, subject, None) + let mut dummy = IndexMap::new(); + preg_match_all2(pattern, subject, &mut dummy) } - pub fn match_all3( + pub fn match_all2( pattern: impl PregPattern, subject: &str, - matches: Option<&mut IndexMap<CaptureKey, Vec<Option<String>>>>, + matches: &mut IndexMap<CaptureKey, Vec<Option<String>>>, ) -> usize { - let mut internal: IndexMap<CaptureKey, Vec<Option<String>>> = IndexMap::new(); - let result = preg_match_all2(pattern, subject, &mut internal); - - if let Some(out) = matches { - *out = internal; - } - - result + preg_match_all2(pattern, subject, matches) } fn match_all_with_offsets5( @@ -220,12 +214,12 @@ impl Preg { Some(captures) } - pub fn is_match_all3( + pub fn is_match_all( pattern: impl PregPattern, subject: &str, - matches: Option<&mut IndexMap<CaptureKey, Vec<Option<String>>>>, + matches: &mut IndexMap<CaptureKey, Vec<Option<String>>>, ) -> bool { - Self::match_all3(pattern, subject, matches) > 0 + Self::match_all2(pattern, subject, matches) > 0 } pub fn is_match_all_with_offsets3( |
