fixed-hash: Derive PartialEq and Eq instead of implementing them manually #742
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.
The motivation for this is that Rust only lets you use named constants (as opposed to literals) for pattern matching if the value's type has derived
PartialEq
andEq
implementations. So trying to compile the following code:currently results in the following compilation error:
As far as I can tell, the existing explicit
PartialEq
implementation exists for historical reasons and isn't necessary any more, the derived implementation should be equivalent. Assuming that is true, the only potential drawback of this change that I can see is that it poses a backwards compatibility hazard, i.e. if in the future you would want to manually implementPartialEq
again for some reason, doing so would break the code of anyone using e.g. namedH160
constants in pattern matches.