hashes icon indicating copy to clipboard operation
hashes copied to clipboard

docs for hasher states could use a reference to the `Digest` trait

Open izik1 opened this issue 3 years ago • 5 comments

For someone new to the ecosystem it might be hard to tell how to use a... For example, sha3::Keccak256 (https://docs.rs/sha3/latest/sha3/type.Keccak256.html), it's just a type alias with no real info about what it is (other than some nebulous "hasher state") or how to use it. I'd recommend linking to the Digest trait in the docs as a way of explaining "how to use it"

Additionally (if I should move this to a separate issue, let me know and I will do so) I would recommend an example specifically showing how to sha3::Keccak256::digest(b"a message") in one go. Finally, the example(s) that use update should add more than one message. This would be so that show new user why you would use new and then update rather than digest ("because you can add more than one thing").

I would be willing to create the examples / documentation if this would be agreeable

izik1 avatar Dec 13 '22 05:12 izik1

Yes, we will appreciate documentation improvement PRs.

newpavlov avatar Dec 16 '22 19:12 newpavlov

Related, I couldn't get https://github.com/RustCrypto/hashes?tab=readme-ov-file#examples working correctly, had to use the following:

use sha2::{Sha256, Digest};

// from the example
// no such associated item (E0599)
let digest = Sha256::digest(b"hello");

// my usage
// this works
let digest = <Sha256 as Digest>::digest(b"hello");

jselig-rigetti avatar Jan 17 '24 15:01 jselig-rigetti

@jselig-rigetti works fine here: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=67a52089d26fccb4f956fc397079b343

It's possible you have another trait in scope which defines a digest method and thus requires you disambiguate

tarcieri avatar Jan 17 '24 16:01 tarcieri

@jselig-rigetti Are you sure it's not this rust-analyzer issue?

newpavlov avatar Jan 17 '24 22:01 newpavlov

Ah, it could have been, thanks for the link!

jselig-rigetti avatar Jan 18 '24 14:01 jselig-rigetti