Forests of B+ trees.

Add new ordered set and map data structures based on B+-trees. These are
not general-purpose data structures like the BTreeSet and BTreeMap types
in the standard library. They are specialized for:

- Keys and values are small `Copy` types, optimized for 32-bit entities.
- Each set or map has a very small footprint, using only 32 bits of
  memory when empty.
- Keys are compared using a borrowed comparator object which can provide
  context for comparing tiny types that don't contain enough information
  to implement `Ord`.
- A whole forest of B-trees can be cleared in constant time without
  having to traverse the whole data structure.
This commit is contained in:
Jakob Stoklund Olesen
2017-10-24 09:44:23 -07:00
parent 94921c0b74
commit aa6f5c0db3
7 changed files with 3239 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ pub mod dbg;
#[macro_use]
pub mod entity;
pub mod bforest;
pub mod binemit;
pub mod bitset;
pub mod cursor;