All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- irc: Change the IrcItem trait to support custom container, backward compatible with default param
- Add Irc (intrusive ref count) gated by
ircfeature
- Add feature gate "seglist" & "various"
- various_map: Add missing IntoIter for &VariousMap
- various_map: Add keys(), values(), values_mut(), iter_mut()
-
avl: Add trait requirement to AvlNode struct
-
seg_list: Fix missing Send in iterators
-
btree: Fix missing Send in iterators
- btree: Fix debug assert when tree split
- VariousMap: Fix Entry unnecessary Default requirement
- VariousMap: impl ExactSizeIterator & DoubleEndedIterator
- Add VariousMap (a temporary map wraps std BTreeMap with
Option<(K, V)>to delay allocation)
-
avl: Add iter() & iter_rev(), support iterate &P::Target and get &P through next_ref()
-
btree: Add remove_entry()
-
Add SmartPointer trait
-
impl Pointer for &T
-
Pointer trait add as_ptr()
-
avl: Add missing Send
-
avl: Move cmp function into AvlItem trait, support borrow_key() and Ord
-
avl: Change get_count() to len()
- avl: wake() is replace by iter()
- btree: Add readonly Cursor
- btree: Fix typo in API, "peak" rename to "peek"
- btree: Fix alter_key() when:
- TreeInfo may not exist (height=1)
- alter_key should fix cache position to the center (for peak_ancestor)
- btree: Fix entry remove following move_forward/backward (will broken tree structure)
-
btree: Reduce struct size to 24B (the same with std)
-
btree: Smart optimization for sequential & random insertion
- btree: expose leaf_count() & inter_count() and memory_used()
- btree: Add IntoIter::rev() and BTreeMap::into_iter_rev()
-
btree: Fix for zero-sized value
-
btree: Enhance search speed (insert/get)
- btree: Minor optimize in
remove_range()
- btree: Fix doc link
- btree: A b+tree implementation with special api
- seg_list & various: Add iter_rev(), iter_mut_rev(), into_rev()
- Various: Add clear method
-
seg_list: Optimize drain operation and allocation strategy. Added benchmark result.
-
Add more example for dlist & slist using various type
-
Impl Pointer for
*mut T -
dlist: Expose remove_node() to remove node from the middle of the list.
- dlist: change peak() signature to reference.
- ConstVec: Fix miri warning
- Remove
fullfeature flag from default
- SegList: Ensure at least 2 items when T is large.
-
Add ConstVec: Fixed capacity inline vec
-
Add SegList: A list to store elements with fixed size segments (the capacity of segment is calculated to fit a CPU cacheline)
-
Add Various: For various count of elements passing between functions, zero or one condition will use Option, otherwise will using
SegList
- RangeTree is removed and moved to crate range-tree-rs
- Fix clippy warning
- slist & dlist: Remove unused get_length(). length field changed to usize
-
range_tree: Reduce RangeTreeSimple size, remove unused stats fields
-
range_tree: Remove explicit set_ops(), ops should be init with Default
-
range_tree: Reduce RangeSeg size for RangeTreeSimple
- Fix SLinkedList::clear & DLinkedList::clear
-
Add SLinkedList::push_front
-
Add SLinkedListOwned
- range_tree: Fix missing Send on iterator and RangeSeg
- Add iterator for RangeTree
- Add avl and range tree ported from ZFS
- Fix dlist::drain() order to FIFO
- Add no-std support