Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor regex matching logic and migrate to regex-lite crate #1304

Closed
wants to merge 1 commit into from

Conversation

romanstingler
Copy link

@romanstingler romanstingler commented Dec 22, 2024

  • Replaced regex crate with regex-lite crate
  • regex-lite lacks RegexSet functionality therefore =>
  • Adjusted logic to match against all regexes explicitly.
  • Introduced matches_any_regex closure to encapsulate regex match checks.
  • Added iter_matches_any helper function to handle iterables.
  • Reduced duplication in the logic for checking matches across pkg fields.

image

#613

- Replaced `regex` crate with `regex-lite` crate, which lacks `RegexSet` functionality.
- Adjusted logic to match against all regexes explicitly.
- Introduced `matches_any_regex` closure to encapsulate regex match checks.
- Added `iter_matches_any` helper function to handle iterables.
- Reduced duplication in the logic for checking matches across pkg fields.
- Improved readability and maintainability of the matching process.

Morganamilo#613
@Morganamilo
Copy link
Owner

Is this noticeably slower at all? The RegexSet was the data structure perfectly suited for this and I assume it had some optimisations over just a Vec.

Also looking at our dependency tree:

  • globset pulls in some regex stuff
  • tr pulls in the regex crate

So this doesn't actually eliminate regex but pulls in another crate along side it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants