Change:
} } <del> /// A trait which represents the ability to hash an arbitrary stream of bytes. </del> <ins> /// A trait for hashing an arbitrary stream of bytes. /// /// Instances of `Hasher` usually represent state that is changed while hashing /// data. /// /// `Hasher` provides a fairly basic interface for retrieving the generated hash /// (with [`finish`]), and writing integers as well as slices of bytes into an /// instance (with [`write`] and [`write_u8`] etc.). Most of the time, `Hasher` /// instances are used in conjunction with the [`Hash`] trait. /// /// # Examples /// /// ``` /// use std::collections::hash_map::DefaultHasher; /// use std::hash::Hasher; /// /// let mut hasher = DefaultHasher::new(); /// /// hasher.write_u32(1989); /// hasher.write_u8(11); /// hasher.write_u8(9); /// hasher.write(b"Huh?"); /// /// println!("Hash is {:x}!", hasher.finish()); /// ``` /// /// [`Hash`]: trait.Hash.html /// [`finish`]: #tymethod.finish /// [`write`]: #tymethod.write /// [`write_u8`]: #method.write_u8 </ins> #[stable(feature = "rust1", since = "1.0.0")] pub trait Hasher { /// Completes a round of hashing, producing the output hash generated. <ins> /// /// # Examples /// /// ``` /// use std::collections::hash_map::DefaultHasher; /// use std::hash::Hasher; /// /// let mut hasher = DefaultHasher::new(); /// hasher.write(b"Cool!"); /// /// println!("Hash is {:x}!", hasher.finish()); /// ``` </ins> #[stable(feature = "rust1", since = "1.0.0")] fn finish(&self) -> u64; /// Writes some data into this `Hasher`. <ins> /// /// # Examples /// /// ``` /// use std::collections::hash_map::DefaultHasher; /// use std::hash::Hasher; /// /// let mut hasher = DefaultHasher::new(); /// let data = [0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef]; /// /// hasher.write(&data); /// /// println!("Hash is {:x}!", hasher.finish()); /// ``` </ins> #[stable(feature = "rust1", since = "1.0.0")] fn write(&mut self, bytes: &[u8]); <del> /// Write a single `u8` into this hasher. </del> <ins> /// Writes a single `u8` into this hasher. </ins> #[inline] #[stable(feature = "hasher_write", since = "1.3.0")] fn write_u8(&mut self, i: u8) {

Discussion:
Part of Here's what needs to be done to close out this issue: needs a stronger summary/explanation distinction. "This structure is zero-sized and does not need construction." is weird. also needs a stronger summary/explanation distinction. It also needs a better explanation of why it exists with an example. needs general improvement, it is the main bit of this module, but its docs feel tossed together and have few examples or coherence. needs more than just a summary line; it needs explanation and examples.
What kind of further documentation are you looking for here?
Better explanations for examples of implementing and and and more docs generally for all three.
There seem to be a lengthy example of BuildHasherDefault in this commit () Also for BuildHasher and there is a healthy amount of documentation as of now. Hasher seems to be really outdated (still lists several Implementors without mentioning they have been deprecated), which I'm looking into right now.
Thanks ! Looks like all that's left is documenting .
I am happy to mentor anyone who wants to tackle this issue.
I volunteer as a tribute :-)
wonderful! If you need any help, please just let me know, as I said above, happy to help you help me (We can do it here or ping me on IRC)
I have more specifics in the main issue above
I'm gonna tackle this one this weekend! (if that's okay with you,