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