treap 0.4.0
treap: ^0.4.0 copied to clipboard
A persistent treap for Dart. A heap balanced randomized binary tree with efficient value semantics.
0.4.0 #
-
Added specialized set variants for deeply immutable primitive types
TreapSetOfInt,TreapSetOfDouble, andTreapSetOfStringfor sets, andTreapListOfInt,TreapListOfDouble, andTreapListOfStringfor lists for efficient cross-isolate use.
-
Includes an example (
deeply_immutable_node.dart) for creating you own cross-isolate friendly collections. -
Introduced a settable
defaultPriorityfunction, defaulting to a hash of the item, making priorities customizable. -
Allowed all collection types (
TreapMapBase,TreapSetBase,TreapListBase) to be parameterized by a customNodeTtype for advanced usage and flexibility. -
Introduced
TreapBaseandImplicitTreapBaseto consolidate common logic. -
Refactored the internal node interface and improved benchmark structure.
-
Moved the
Hashutility class to its own file. -
Improved JavaScript compatibility, particularly for the
Hashclass and integer operations. -
Added testing support for
dart2jsanddart2wasm, ensuring broader platform compatibility. -
Improved benchmark output and structure.
-
Parameterized tests by node type.
-
Added web tests and refined CI test execution environments.
-
Fixed several bugs related to JavaScript compilation, integer handling (
1 << 32), and bitwise operations (~0). -
Fixed a bug in the example code.
-
Updated README, API documentation comments, and CI configuration.
0.3.0 #
- Fix a bug where
TreapSet<T>.addwould update an existing item. - Add a persistent implicit treap (
ImplicitTreap). - Add
TreapList<T>with logarithmicinsertandremove, build on top ofImplicitTreap. - Add comparative benchmark for
listandTreapList.
0.2.0 #
- Add
TreapSet<T>aSet<T>with constant timetoSetand logarithmicelementAt,skip, andtake. - Add comparative benchmark for
HashSet,LinkedHashSet,SplayTreeSet, andTreapSet. - Increase test coverage to 100% branch coverage
0.1.0 #
- Initial version. Public interface still subject to change.