Can't thank you enough, nice work.
Or maybe it's just a nod in the direction of truth, as the author can often change the post after it is initially published, or even just change the date to be whatever they want.
August 15, 2016, for posterity's sake. :)
I often found myself storing indexes into vectors/maps and not being sure if this was a good way of doing things; it seemed better than raw pointers in some senses, but it also felt like I was just bypassing the borrow checker and using a system that had less drastic failure modes, but othewise no guarantees.
I also found myself building up datastructures of these indexes that I would not have had to do in a traditional imperative language.
I would have really appreciated some examples of writing your own data structures where a traditional encoding would run into the borrow checker (eg graphs).
I would have prefered a reference book of techniques with examples to this format, though maybe starting with a ToC of techniques would be better than a rant about linked lists.
[EDIT]: I read some more and this seems like really useful info... just not advertised or IMO presented well.
While not as complex as that, I would like to hear what you think about the slices section in the new version of the book: http://rust-lang.github.io/book/ch04-03-slices.html
It introduces slices by starting with functions that use indexes into `String`s, which sounds similar to what you were doing. It demonstrates the problems with that approach, and then shows how to use slices instead.
I'm not sure if slices would have worked well in your cases, but this chapter is so similar to what you said I wanted to point it out!
This couldn't have come at a better time for me. I started learning Rust in August 2015 from TRPL, but life got in the way. Now I've started up again, so I'm very excited about the documentation updates.