refactor(ruleset)!: improve match code efficiency and properly handle status #1255
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The above does not purge. It only gets skipped when the worker handles skipping. The compiler should be corrected here and return
FALSE
when the above is calculated withrule data == push on main
for exampleFurther, I refactored the match code to be more efficient. I removed the unnecessary
Parallel
key, which will be addressed in a follow-up worker PR, which introduces stage status.Added some bench mark testing which is just there for fun right now, but I used it to confirm the improvements by comparing these changes to main. Improvement of about half a second, which definitely adds up over parsing thousands of rulesets.
Another thing I added was separation of
if
andunless
operators/matchers if defined. Otherwise, they'll inherit from theRuleset
like usual (non-breaking).