]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #32466 - jooert:btree_append, r=apasel422
authorbors <bors@rust-lang.org>
Sat, 23 Apr 2016 00:54:30 +0000 (17:54 -0700)
committerbors <bors@rust-lang.org>
Sat, 23 Apr 2016 00:54:30 +0000 (17:54 -0700)
Implement `append` for b-trees.

I have finally found time to revive #26227, this time only with an `append` implementation.

The algorithm implemented here is linear in the size of the two b-trees. It firsts creates
a `MergeIter` from the two b-trees and then builds a new b-tree by pushing
key-value pairs from the `MergeIter` into nodes at the right heights.

Three functions for stealing have been added to the implementation of `Handle` as
well as a getter for the height of a `NodeRef`.

The docs have been updated with performance information about `BTreeMap::append` and
the remark about B has been removed now that it is the same for all instances of `BTreeMap`.

cc @gereeter @Gankro @apasel422


Trivial merge