litcheck_filecheck/pattern/search/
regex.rs

1use crate::common::Range;
2
3use super::{DefaultSearcher, Input, Match};
4
5pub type RegexSearcher<'input> = DefaultSearcher<
6    regex_automata::Input<'input>,
7    regex_automata::Match,
8    regex_automata::MatchError,
9>;
10
11impl Match for regex_automata::Match {
12    type PatternID = regex_automata::PatternID;
13
14    fn is_empty(&self) -> bool {
15        regex_automata::Match::is_empty(self)
16    }
17    fn pattern(&self) -> Self::PatternID {
18        regex_automata::Match::pattern(self)
19    }
20    fn end(&self) -> usize {
21        regex_automata::Match::end(self)
22    }
23    fn range(&self) -> Range<usize> {
24        regex_automata::Match::range(self).into()
25    }
26}
27
28impl<'input> Input for regex_automata::Input<'input> {
29    fn buffer(&self) -> &[u8] {
30        self.haystack()
31    }
32    fn anchored(&self) -> bool {
33        self.get_anchored().is_anchored()
34    }
35    fn range(&self) -> Range<usize> {
36        regex_automata::Input::get_range(self).into()
37    }
38    fn start(&self) -> usize {
39        regex_automata::Input::start(self)
40    }
41    fn set_start(&mut self, start: usize) {
42        regex_automata::Input::set_start(self, start)
43    }
44    fn set_range(&mut self, range: Range<usize>) {
45        regex_automata::Input::set_range(self, range)
46    }
47}