[BC break] Custom validation with context + smaller fixes #123
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.
Smaller fixes
Feature enhancement
I enhanced the custom type validators so their validation functions get the object being validated passed as a second argument. It is a BC break but the changes necessary are mechanical in nature (see the updated unit test for an example on how this can be used).
This is not finished yet (working on fixing #116) but I wanted to put this out there in order to ask you about the BC break: is that even an option? I thought about doing it in a backwards-compatible way but that would involve reflection. Variadic parameters aren't an option either. The only other way would be to wrap the value to validate and the object being validated in a custom object. That would make it more future-proof and the custom type validation function signature could be changed so as to not require passing an empty interface. Still, that also breaks BC or worse, breaks all current usages (because the custom validation wrapper object is also an interface{}).
This change is