panoradix 0.6.2

A generic map and a set, both backed by a Radix tree.
Documentation

panoradix

My take on implementing a Radix tree, for usage when large data mappings with slices as indices.

Travis badge crates.io badge

Documentation

Note: this is currently a work in progress, expect unannounced brutal API changes every time the version is bumped.

What's in this repo?

Both are backed by a Radix tree.

What's being worked on?

A lot is missing right now, here's a wishlist sorted by difficulty/want:

  • map iterators: values_mut()
  • intersection: should be straightforward
  • union: since there can't be multiple values, merging two values with the same key should be annoying
  • faster edge search: currently linear, should probably be binary search
    • can be found on the binary-search-edges branch, needs to be optimized as benches show slower runs using binary search instead of linear

What's just been finished?

  • documentation: should follow the API guidelines
  • take arbitrary keys instead of strings
  • faster iteration: tree iterators were hacked together and abuses heap allocation/recursion, now use a faster structure
  • clearing: clear() on both map/set
  • fitering elements: find() on both map/set
  • erasing a key: remove() on both map/set
  • set iterators: keys()
  • map iterators: keys(), values() and iter()