Ignore fields with validation instruction with nest_all_fields
#379
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.
Problem:
nest_all_fieldsadds #[validate(nested)] for all fields, making the macro unusable in a situation where some fields have specific validation instruction.#[validate(skip)]along with other#[validate]attrs skips field validation entirelySolution: only add
#[validate(nested)]to fields that don't have other validation attributes.Essentially this makes
nest_all_fieldssemantically closer tovalidate_all_fieldsbut inserts#[validate(nested)]if no validation instruction is present. But renaming it is a breaking changeConcrete example of what I wanted to enable:
It's obvious that this should work: we gave explicit validation instruction, so there's no need to insert
#[validate(nested)]Moreover, this PR enables something like this:
which follows the same logic as the previous example, and is quite handy in general