Compile regex only when required

pull/482/head
Arijit Basu 2 years ago committed by Arijit Basu
parent 95248ae6d1
commit f324e976da

@ -1474,8 +1474,27 @@ pub struct NodeFilterApplicable {
impl NodeFilterApplicable {
pub fn new(filter: NodeFilter, input: String) -> Self {
let regex = Regex::new(&input).ok().map(CmpRegex);
let iregex = Regex::new(&input.to_lowercase()).ok().map(CmpRegex);
use NodeFilter::*;
let (regex, iregex) = if matches!(
filter,
RelativePathDoesMatchRegex
| IRelativePathDoesMatchRegex
| RelativePathDoesNotMatchRegex
| IRelativePathDoesNotMatchRegex
| AbsolutePathDoesMatchRegex
| IAbsolutePathDoesMatchRegex
| AbsolutePathDoesNotMatchRegex
| IAbsolutePathDoesNotMatchRegex
) {
(
Regex::new(&input).ok().map(CmpRegex),
Regex::new(&input.to_lowercase()).ok().map(CmpRegex),
)
} else {
(None, None)
};
Self {
filter,
input,

Loading…
Cancel
Save