docs for hasher states could use a reference to the `Digest` trait
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
Yes, we will appreciate documentation improvement PRs.
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 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
@jselig-rigetti
Are you sure it's not this rust-analyzer issue?
Ah, it could have been, thanks for the link!