Closed
Description
The Regex::replace* methods return a Cow<str>
for efficiency, but can't take a Cow<str>
. This harms efficiency in cases like multiple sequential regular expressions:
|text: &str /* or Cow<str> even */| -> Cow<str> {
let text = regex1.replace(text, replacement);
let text = regex2.replace(text, replacement);
text
}
Instead you’re stuck with this which necessarily wastes an allocation:
|text: &str| -> String {
let text = regex1.replace(text, replacement);
let text = regex2.replace(&text, replacement);
text.into_owned()
}