llrb-index 0.4.0

Left Leaning Red Black index
Documentation
0.5.0 (PENDING)
=====

0.4.0
=====

- Change the Range() API, make this similar to std-lib.
- Rewrite iter(), range() API. performance improvement by ~2x.
- Replace " as " type-casting with try\_into().unwrap().
- Implement Default trait for Depth type.
- Fix reverse API signature.
- Replace load\_from() with Extend trait.
- Improve unit-testing.

0.3.0
=====

- Implement Empty type that can be used as values.
- Breaking changes.
  * Rename LlrbError to Error.
  * Replace Clone implementation for Llrb with #[drive(Clone)]
  * Change return type for create() API.
- rustdoc.


0.2.0
=====

* Implement create() method on Llrb.
* Implement random() method on Llrb.
* Rename count() API to len() method on Llrb.
* Stats type and new stats() method on Llrb.
* validate() method should return Stats type.
* Tree depth statistics, in min, mean, max, percentiles.

0.1.0
=====

* Self-balancing data structure.
* Optimized for in-memory index.
* Each entry in LLRB instance correspond to a {Key, Value} pair.
* Parametrised over Key type and Value type.
* CRUD operations, via set(), get(), delete() API.
* Read optimized.
* Full table scan, to iterate over all entries.
* Range scan, to iterate between a ``low`` and ``high``.
* Reverse iteration.

Code Review checklist
=====================

* [ ] Review and check for un-necessary copy, and allocations.
* [ ] Review resize calls on `Vec`.
* [ ] Review (as ...) type casting, to panic on data loss.
* [ ] Reduce trait constraints for Type parameters on public APIs.
* [ ] Public APIs can be as generic as possible. Check whether there
      is a scope for `AsRef` or `Borrow` constraints.
* [ ] Document error variants.
* [ ] Check for dangling links in rustdoc.

Release Checklist
=================

* Bump up the version:
  * __major__: backward incompatible API changes.
  * __minor__: backward compatible API Changes.
  * __patch__: bug fixes.
* Cargo checklist
  * cargo +stable build; cargo +nightly build
  * cargo +stable doc; cargo +nightly doc
  * cargo +stable test; cargo +nightly test
  * cargo +nightly bench
  * cargo +nightly clippy --all-targets --all-features
  * cargo fix --edition --all-targets
* Travis-CI integration.
* Spell check.
* Create a git-tag for the new version.
* Cargo publish the new version.
* Badges
  * Build passing, Travis continuous integration.
  * Code coverage, codecov and coveralls.
  * Crates badge
  * Downloads badge
  * License badge
  * Rust version badge.
  * Maintenance-related badges based on isitmaintained.com
  * Documentation
  * Gitpitch