use regex::RegexSet;
#[derive(Clone, Debug)]
pub struct RegexFilter {
regex: RegexSet,
}
impl RegexFilter {
#[must_use]
pub fn empty() -> Self {
Self {
regex: RegexSet::empty(),
}
}
pub fn new<I, S>(exprs: I) -> Result<Self, regex::Error>
where
S: AsRef<str>,
I: IntoIterator<Item = S>,
{
Ok(Self {
regex: RegexSet::new(exprs)?,
})
}
#[inline]
#[must_use]
pub fn is_match(&self, input: &str) -> bool {
self.regex.is_match(input)
}
#[inline]
#[must_use]
pub fn is_empty(&self) -> bool {
self.regex.is_empty()
}
}
impl From<RegexSet> for RegexFilter {
fn from(regex: RegexSet) -> Self {
Self { regex }
}
}