matchers: simplify `DifferenceMatcher` slightly
The new `Visit::Nothing` variant lets us more easily restructure
`DifferenceMatcher::visit()` to make it handle the case of not
removing anything. I think this makes the code a little clearer.
@@ -187,17 +187,12 @@ impl Matcher for DifferenceMatcher<'_> {
fn visit(&self, dir: &RepoPath) -> Visit {
match self.unwanted.visit(dir) {
Visit::AllRecursively => Visit::Nothing,
- unwanted_visit => match self.wanted.visit(dir) {
- Visit::AllRecursively => {
- if unwanted_visit == Visit::Nothing {
- Visit::AllRecursively
- } else {
- Visit::Specific {
+ Visit::Nothing => self.wanted.visit(dir),
+ Visit::Specific { .. } => match self.wanted.visit(dir) {
+ Visit::AllRecursively => Visit::Specific {
dirs: VisitDirs::All,
files: VisitFiles::All,
- }
- }
- }
+ },
wanted_visit => wanted_visit,
},
}
