Implement Sha256Digest
for Vec<u8>
and &Vec<u8>
and &String
directly
#13
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.
Previously, this didn't compile:
and the error message was pretty unhelpful:
The solution is to do a reborrow:
sha256::digest(&*input);
But getting to that took a while and me and my colleges didn't understand what was happening. Apparently the
Deref
mechanism that lets you usually use&Vec<u8>
in place of&[u8]
doesn't work with theSha256Digest
trait.So in this PR, I implement Sha256Digest for
Vec<u8>
and&Vec<u8>
directly. This makes the first example just work.The situation is similar with
&String
, which usually works the same as&str
, but not here. So I added an impl for that too.