lychee_lib/filter/
regex_filter.rs1use regex::RegexSet;
2
3#[derive(Clone, Debug)]
6pub struct RegexFilter {
7 regex: RegexSet,
9}
10
11impl RegexFilter {
12 #[must_use]
14 pub fn empty() -> Self {
15 Self {
16 regex: RegexSet::empty(),
17 }
18 }
19
20 pub fn new<I, S>(exprs: I) -> Result<Self, regex::Error>
22 where
23 S: AsRef<str>,
24 I: IntoIterator<Item = S>,
25 {
26 Ok(Self {
27 regex: RegexSet::new(exprs)?,
28 })
29 }
30
31 #[inline]
32 #[must_use]
33 pub fn is_match(&self, input: &str) -> bool {
36 self.regex.is_match(input)
37 }
38
39 #[inline]
40 #[must_use]
41 pub fn is_empty(&self) -> bool {
43 self.regex.is_empty()
44 }
45}
46
47impl From<RegexSet> for RegexFilter {
48 fn from(regex: RegexSet) -> Self {
49 Self { regex }
50 }
51}