collections, unicode: Add support for NFC and NFKC
Guide: testing
Add comment about speed in FAQ.

Fixes #11174.
Guide: pointers

Not the pointer guide, but the guide section on pointers.

Adding a section about patterns for after this, as well.
Be more consistent with "Hello, world!"
Correct RFC reference in time::Tm::rfc3339 docs

Fixes #16158
Change strptime::match_strs to use borrowed rather than owned strings

Also modernise a few constructs in match_strs().
Fix API docs css reversing elements that it shouldn't

remove unneeded `pre.rust a' selector

move transform into `.test-arrow`

fixes #16138
libsync: Add safer abstraction for SPSC queue.

The current spsc implementation doesn't enforce single-producer
single-consumer usage and also allows unsafe memory use through
peek & pop.

For safer usage, `spsc_queue::queue` now returns a pair of owned objects which
only allow consumer or producer behaviours through an `Arc`.
Through restricting the mutability of the receiver to `mut` the
peek and pop behaviour becomes safe again, with the compiler
complaining about usage which could lead to problems.

To fix code broken from this, update:
Queue::new(x) -> unsafe { Queue::new(x) }

[breaking-change]
Use hello_world instead of the guessing_game
Move caret under the 'x' variabe
collections: Implement Eq for DList, RingBuf, TreeMap, TreeSet
auto merge of #15992 : steveklabnik/rust/guide_testing, r=brson

The start of a testing guide. This PR relies on the crates and modules one because I shuffled some stuff around, so sorry about that.

I got stuck with how to import this name with cargo. @wycats and @alexcrichton , any ideas?
collections: Implement Ord for DList, RingBuf, TreeMap, TreeSet
collections: Implement FromIterator/Extendable for BitvSet
auto merge of #15995 : Ryman/rust/sync_spsc_peek, r=alexcrichton

The current spsc implementation doesn't enforce single-producer
single-consumer usage and also allows unsafe memory use through
peek & pop.

For safer usage, `new` now returns a pair of owned objects which
only allow consumer or producer behaviors through an `Arc`.
Through restricting the mutability of the receiver to `mut` the
peek and pop behavior becomes safe again, with the compiler
complaining about usage which could lead to problems.

To fix code broken from this, update:
Queue::new(x) -> unsafe { Queue::unchecked_new(x) }

[breaking-change]

For an example of broken behavior, check the added test which uses the unchecked constructor.
Fix misspelled comments.
mk: Add missing colon
auto merge of #16119 : steveklabnik/rust/guide_pointers, r=brson

This is the next section of the guide, and it's on pointers. It's not done yet, as I need to write the section on ownership and borrowing, but I figured I'd share the rest now, to get feedback on the rest of it while I take some time to get that right.
doc: Make sure all doc titles say 'Rust'. #12466