Skip to content

Commit ce897bb

Browse files
committed
perf: collapse 3 regex calls per iteration in rewrite_urls loop to 1
1 parent 4baa0d4 commit ce897bb

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

src/utils.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,10 +1090,11 @@ pub fn rewrite_urls(input_text: &str) -> String {
10901090

10911091
// Rewrite external media previews to Redlib
10921092
loop {
1093-
if REDDIT_PREVIEW_REGEX.find(&text1).is_none() {
1093+
let Some(caps) = REDDIT_PREVIEW_REGEX.captures(&text1) else {
10941094
return text1;
1095-
} else {
1096-
let formatted_url = format_url(REDDIT_PREVIEW_REGEX.find(&text1).map(|x| x.as_str()).unwrap_or_default());
1095+
};
1096+
{
1097+
let formatted_url = format_url(caps.get(0).map_or("", |m| m.as_str()));
10971098

10981099
let image_url = REDLIB_PREVIEW_LINK_REGEX.find(&formatted_url).map_or("", |m| m.as_str());
10991100
let mut image_caption = REDLIB_PREVIEW_TEXT_REGEX.find(&formatted_url).map_or("", |m| m.as_str());
@@ -1122,7 +1123,7 @@ pub fn rewrite_urls(input_text: &str) -> String {
11221123

11231124
/* In order to know if we're dealing with a normal or external preview we need to take a look at the first capture group of REDDIT_PREVIEW_REGEX
11241125
if it's preview we're dealing with something that needs /preview/pre, external-preview is /preview/external-pre, and i is /img */
1125-
let reddit_preview_regex_capture = REDDIT_PREVIEW_REGEX.captures(&text1).unwrap().get(1).map_or("", |m| m.as_str());
1126+
let reddit_preview_regex_capture = caps.get(1).map_or("", |m| m.as_str());
11261127

11271128
let _preview_type = match reddit_preview_regex_capture {
11281129
"preview" => "/preview/pre",

0 commit comments

Comments
 (0)