use regex;
use regex::Regex;
use regex::RegexBuilder;
use std;
type RegexBuildResult = std::result::Result<Regex, regex::Error>;
fn mk_case_insensitive_regex(s: &str) -> RegexBuildResult {
let mut rx = RegexBuilder::new(s);
rx.case_insensitive(true);
rx.size_limit(1 << 16);
rx.dfa_size_limit(1 << 16);
rx.build()
}
pub trait IntoRegexCI {
fn into_regex_ci(self) -> RegexBuildResult;
}
impl IntoRegexCI for Regex {
fn into_regex_ci(self) -> RegexBuildResult {
Ok(self)
}
}
impl<'a> IntoRegexCI for &'a str {
fn into_regex_ci(self) -> RegexBuildResult {
mk_case_insensitive_regex(self)
}
}