- Update pipeline, actions, and test coverage. (@slightfoot)
- Migrated to Dart 3 (@slightfoot)
- Migrated to null-safety (thanks @scarnett!)
- Bumped down the quiver dependency version to 2.0.5 to be compatible with the current stable channel of the Flutter SDK
- Fixed IntervalTree.contains()
- Fixed comparison for intervals with other comparables, such as DateTime
- Made IntervalTree default constructor, add(), and remove() throw an ArgumentError when passing an invalid interval iterable
- Deprecated Interval.length that would only work with nums
- Fixed double comparison
- Cosmetic fixes only to make the Dart Analyzer and Linter happy
- Re-wrote IntervalTree based on AvlTreeSet from quiver.collection
- Made IntervalTree automatically join and split appropriate intervals at insertion and removal, respectively
- Added IntervalTree.of() and from() factory and named constructors
- Added IntervalTree.add(), addAll(), remove(), removeAll(), and clear() methods for managing intervals in the tree
- Added IntervalTree.union(), intersection() and difference() methods
- Made IntervalTree accept array literals like
[a,b]
in place of Interval objects - Made IntervalTree inherit IterableMixin to offer all standard iterable operations
- Made Interval immutable
- Renamed Interval.stop to end
- Added Interval.length property
- Added Interval.union(), intersection() and difference() methods
- Initial Dart port of a minimal C++ interval tree implementation by Erik Garrison: https://github.com/ekg/intervaltree