Implement a Clamp modifier/validator #740
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 implements support for modifiers such as
Clamp
.See
ClampingValidator
test for usage examples.If we decide to go this path we probably will want to rename
Validator
andvalidate
to something that implies possible modification to the original json value.Most of the validators can continue receiving a
const&
of the json value. Only modifiers and containers for other validators/modifiers need to remove the const.I'm certainly not a huge fan of this "design" but i don't see another way to achieve clamping if we need it.
Sometime in the future perhaps we could integrate the parsing steps into this framework instead of relying on user-provided
value_from
andvalue_to
but for now this approach is least blood for modifiers support.Let me know your thoughts @cindyyan317 and @ximinez.