And yeah, there's certainly a ton of weak points. We landed a _lot_ of Rustdoc fixes that make certain things better, but there's still a ton more to write. I've been mostly focusing on the longform docs. I just wanted to make sure that I know where people are having problems, so I can know where to focus my efforts. Thanks.
The book is in the "trpl" directory: https://github.com/rust-lang/rust/tree/master/src/doc/trpl
The standard library docs are maintained in doc comments in the appropriate places in the source: https://github.com/rust-lang/rust/tree/master/src/libstd
You can clone the repository, modify it locally, and build and test the docs (yes, the docs get tested, most of the code samples are actually executable tests), or you can just edit them online in GitHub's editor and send a pull request that way if you're just making documentation suggestions that won't need any tests.
Some way to conflate the two types of docs might be cool. For example, if there were high-level examples of commonly used API patterns in the std lib ("we use traits in this fashion here to achieve the following goals"), the docs could embed links to them as factoids ("this is an application of <this pattern>"). Heck, even just a ? button next to the "Traits" header linking to the book's Traits section would probably help some folks.
Linking to rust-guidelines in some way to back up the design of various APIs might be cool, too.
(Don't want to be the guy to crash Happy Day with more requests, so I'll just add: Many thanks for all your work, Rust has been tickling my brain in enjoyable ways like nothing else this year.)
Oh, and rust-guidelines actually moved in tree: http://doc.rust-lang.org/stable/style/ They haven't yet been linked because of all the FIXMEs.
Thanks for the suggestions. :)
ASCIIDoc or something else might be nice too.
I do like the homepage for its simplicity, but no-one would know the significance without digging into the 'community' links. If that doesn't seem like an issue, then nevermind. Just a thought.
edit to explain: I'm at work and can't hop into IRC to chat about it.
Some of the hardest parts of the documentation is the functionality hidden behind `impl SomeTrait for SomeStruct`. Eg. `impl PartialOrd for BTreeMap`. What on earth does that do? Or the fact you're meant to make a randomly seeded `ChaChaRng` with `OsRng::new().unwrap().gen()`, which is genius but impossible to guess.
Those implementations should absolutely be in the generated documentation, can you maybe point me to some specific pages? Thanks :)
https://doc.rust-lang.org/collections/struct.BTreeMap.html
https://doc.rust-lang.org/collections/vec_map/struct.VecMap....
ChaChaRng is
http://doc.rust-lang.org/rand/rand/chacha/struct.ChaChaRng.h...
although the other implementations also need this. The main page for rand should probably have this somewhere on it, too.
Thanks for helping :).
ChaChaRng _does_ mention OsRng, but a code sample might help, for sure.
I know what a partial order is, I just don't know what partial order maps realize. In Python they aren't orderable.
> ChaChaRng _does_ mention OsRng
It says to use OsRng if cryptographic security is needed, not how to seed with it.
The obvious way is something like
let osrng = OsRng::new().unwrap();
let mut key = [0u32; 8];
for word in key.iter_mut() {
*word = osrng.gen();
}
let prng = ChaChaRng::from_seed(&key[..])
which is a pain.Thank you for taking the time to spell it out to me.
iter::order::cmp(self.iter(), other.iter())
works as an ordering.HashMap in Rust (dict in Python) doesn't have a canonical ordering of elements, so this doesn't make sense.