From 695a787206655aff9fa8c58b3aa78930faa21c23 Mon Sep 17 00:00:00 2001 From: Emi Simpson Date: Fri, 6 Dec 2019 13:53:44 -0500 Subject: [PATCH] Moved regex compilation to lazy_static --- src/utils.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/utils.rs b/src/utils.rs index f8f6502..5117839 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -6,9 +6,13 @@ use regex::Regex; use std::collections::HashMap; use url::{ParseError, Url}; +const CSS_URL_REGEX_STR: &str = + r###"(?P@import )?url\((?P['"]?(?P[^"'\)]+)['"]?)\)"###; + lazy_static! { static ref HAS_PROTOCOL: Regex = Regex::new(r"^[a-z0-9]+:").unwrap(); static ref REGEX_URL: Regex = Regex::new(r"^https?://").unwrap(); + static ref REGEX_CSS_URL: Regex = Regex::new(CSS_URL_REGEX_STR).unwrap(); } const MAGIC: [[&[u8]; 2]; 19] = [ @@ -88,10 +92,8 @@ pub fn resolve_css_imports( opt_insecure: bool, ) -> String { let mut resolved_css = String::from(css_string); - let re = - Regex::new(r###"(?P@import )?url\((?P['"]?(?P[^"'\)]+)['"]?)\)"###).unwrap(); - for link in re.captures_iter(&css_string) { + for link in REGEX_CSS_URL.captures_iter(&css_string) { let target_link = link.name("url").unwrap().as_str(); // Generate absolute URL for content