Support checking multiple requirements #54
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.
This patchset changes the router to be able to handle multiple requirements.
It does this by adding a small change to the matching core to iterate over the requirements instead of doing a direct match,
and by making a change to the group merging logic: instead of the presence of absence of requirements, it will check for a potential overlap in the keys being checked. If there is no overlap, there's a potential for ambiguous handlers, so we need to reject it.
As a side-effect, this also now allows the router to match situations like this:
Where
handler1
will be invoked ifa
is unset or not42
, andhandler2
if it is.