Mercurial > hg
changeset 43611:27c25c0dc967
rust-matchers: remove default implementations for `Matcher` trait
We don't expect a whole lot of matchers to be defined, and this makes it more
obvious what a matcher does by reading its `impl Matcher for FooMatcher`.
This patch has the added benefit of fixing the `AlwaysMatcher`, its `matches`
function differs from the former default.
Differential Revision: https://phab.mercurial-scm.org/D7255
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 06 Nov 2019 16:24:24 +0100 |
parents | 11db74349b24 |
children | dc9c570a3818 |
files | rust/hg-core/src/matchers.rs |
diffstat | 1 files changed, 18 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/rust/hg-core/src/matchers.rs Wed Oct 23 13:55:12 2019 -0700 +++ b/rust/hg-core/src/matchers.rs Wed Nov 06 16:24:24 2019 +0100 @@ -26,13 +26,9 @@ /// Explicitly listed files fn file_set(&self) -> HashSet<&HgPath>; /// Returns whether `filename` is in `file_set` - fn exact_match(&self, _filename: impl AsRef<HgPath>) -> bool { - false - } + fn exact_match(&self, filename: impl AsRef<HgPath>) -> bool; /// Returns whether `filename` is matched by this matcher - fn matches(&self, _filename: impl AsRef<HgPath>) -> bool { - false - } + fn matches(&self, filename: impl AsRef<HgPath>) -> bool; /// Decides whether a directory should be visited based on whether it /// has potential matches in it or one of its subdirectories, and /// potentially lists which subdirectories of that directory should be @@ -71,20 +67,14 @@ /// `VisitChildrenSet::This`). fn visit_children_set( &self, - _directory: impl AsRef<HgPath>, - ) -> VisitChildrenSet { - VisitChildrenSet::This - } + directory: impl AsRef<HgPath>, + ) -> VisitChildrenSet; /// Matcher will match everything and `files_set()` will be empty: /// optimization might be possible. - fn matches_everything(&self) -> bool { - false - } + fn matches_everything(&self) -> bool; /// Matcher will match exactly the files in `files_set()`: optimization /// might be possible. - fn is_exact(&self) -> bool { - false - } + fn is_exact(&self) -> bool; } /// Matches everything. @@ -95,11 +85,22 @@ fn file_set(&self) -> HashSet<&HgPath> { HashSet::new() } - + fn exact_match(&self, _filename: impl AsRef<HgPath>) -> bool { + false + } + fn matches(&self, _filename: impl AsRef<HgPath>) -> bool { + true + } fn visit_children_set( &self, _directory: impl AsRef<HgPath>, ) -> VisitChildrenSet { VisitChildrenSet::Recursive } + fn matches_everything(&self) -> bool { + true + } + fn is_exact(&self) -> bool { + false + } }