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
, andTreapSetOfString
for sets, andTreapListOfInt
,TreapListOfDouble
, andTreapListOfString
for lists for efficient cross-isolate use.
-
Includes an example (
deeply_immutable_node.dart
) for creating you own cross-isolate friendly collections. -
Introduced a settable
defaultPriority
function, defaulting to a hash of the item, making priorities customizable. -
Allowed all collection types (
TreapMapBase
,TreapSetBase
,TreapListBase
) to be parameterized by a customNodeT
type for advanced usage and flexibility. -
Introduced
TreapBase
andImplicitTreapBase
to consolidate common logic. -
Refactored the internal node interface and improved benchmark structure.
-
Moved the
Hash
utility class to its own file. -
Improved JavaScript compatibility, particularly for the
Hash
class and integer operations. -
Added testing support for
dart2js
anddart2wasm
, 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>.add
would update an existing item. - Add a persistent implicit treap (
ImplicitTreap
). - Add
TreapList<T>
with logarithmicinsert
andremove
, build on top ofImplicitTreap
. - Add comparative benchmark for
list
andTreapList
.
0.2.0 #
- Add
TreapSet<T>
aSet<T>
with constant timetoSet
and 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.