Add support for custom equality functions in Eq/PartialEq #535
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 PR depends on #532 (I will mark this PR as non-draft once #532 is merged; for now, you will see changes from both PRs in the diff).
Synopsis
This adds the possibility to use custom functions to perform the equality check in
PartialEq/Eqderives. This is quite useful when wrapping types without aPartialEq/EqimplSolution
This builds on #532 and reuse the
FieldAttributesforHash, I moved the struct toutils::attrand renamed itWithOrSkip.I removed fields types that have a
withattribute from the automatically addedwhere Type: Eqbound automatically generated by theEqderive. This seems like the thing to do as if you're using a custom function it most probably means the field doesn't implementEq.While this is not part of the roadmap for PartialEq, defined in #163 this is something that will be quite useful for people migrating form
derivativeas this was something supported by this crateChecklist