HomePhabricator

rust-matchers: add `Matcher` trait and implement `AlwaysMatcher`

Authored by Alphare.

Description

rust-matchers: add Matcher trait and implement AlwaysMatcher

In our quest of a faster Mercurial, we have arrived at the point where we need
to implement the matchers in Rust.
This RFC mainly for the Matcher trait to see if the changes proposed feel
fine to people with more experience on the matter. While the AlwaysMatcher
implementation is here as a trivial example, it should be the first step
towards matchers use in Rust as it is currently the only supported one.

Notable changes:

  • exact is renamed to exact_match
  • enums for visit* methods with Recursive instead of 'all', etc.
  • a new roots, separate from file_set
  • no bad, explicitdir or traversedir functions as they can be passed to the high functions instead of the matchers

Thanks to Martin for suggesting the last two (most important) changes and for
reaching out to help a few weeks ago.

Differential Revision: https://phab.mercurial-scm.org/D7178

Details

Committed
AlphareTue, Oct 29, 12:16 PM
Differential Revision
D7178: [RFC] rust-matchers: add `Matcher` trait and implement `AlwaysMatcher`
Parents
rHG93f74a7d3f07: merge with stable
Branches
Unknown
Tags
Unknown