Add mutable query capture interface #1501
Merged
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 solution is simple and fairly clean, but there are a couple things I don't like about it:
I would prefer to have more separation between predicate operators, which just return
true
orfalse
, and "mutator" operators that can alter the capture itself. I started down that road, but decided it wasn't worth the complexity to create a whole other set of types for mutatorsI don't love the idea of mutating your parameters; I prefer treating parameters as immutable and just returning an object indicating what should happen. But that also would have made things a fair amount more complicated, and I don't imagine there will be a lot of these operators, so I don't think we need to come up with an airtight type system here.
Checklist