rust-lang/rust — pull request #19782 by gereeter (2014-12-12 20:26:23+00:00)
Title: Make BTree's internals safer and do more checks at compile time instead of run time

Before:
```
test btree::map::bench::find_rand_100 ... bench: 12 ns/iter (+/- 0)
test btree::map::bench::find_rand_10_000 ... bench: 13 ns/iter (+/- 1)
test btree::map::bench::find_seq_100 ... bench: 11 ns/iter (+/- 0)
test btree::map::bench::find_seq_10_000 ... bench: 11 ns/iter (+/- 1)
test btree::map::bench::insert_rand_100 ... bench: 106 ns/iter (+/- 1)
test btree::map::bench::insert_rand_10_000 ... bench: 326 ns/iter (+/- 8)
test btree::map::bench::insert_seq_100 ... bench: 198 ns/iter (+/- 1)
test btree::map::bench::insert_seq_10_000 ... bench: 312 ns/iter (+/- 3)
test btree::map::bench::iter_1000 ... bench: 16563 ns/iter (+/- 173)
test btree::map::bench::iter_100000 ... bench: 1686508 ns/iter (+/- 108592)
test btree::map::bench::iter_20 ... bench: 365 ns/iter (+/- 25)
```

After:
```
test btree::map::bench::find_rand_100 ... bench: 12 ns/iter (+/- 0)
test btree::map::bench::find_rand_10_000 ... bench: 12 ns/iter (+/- 0)
test btree::map::bench::find_seq_100 ... bench: 11 ns/iter (+/- 0)
test btree::map::bench::find_seq_10_000 ... bench: 11 ns/iter (+/- 0)
test btree::map::bench::insert_rand_100 ... bench: 89 ns/iter (+/- 1)
test btree::map::bench::insert_rand_10_000 ... bench: 121 ns/iter (+/- 3)
test btree::map::bench::insert_seq_100 ... bench: 149 ns/iter (+/- 0)
test btree::map::bench::insert_seq_10_000 ... bench: 228 ns/iter (+/- 1)
test btree::map::bench::iter_1000 ... bench: 16965 ns/iter (+/- 220)
test btree::map::bench::iter_100000 ... bench: 1687836 ns/iter (+/- 18746)
test btree::map::bench::iter_20 ... bench: 366 ns/iter (+/- 21)
```