insertAll method
Inserts multiple intervals. Optimized for sorted intervals.
Implementation
void insertAll(Iterable<Interval<T>> intervals) {
final list = intervals.toList();
// Verify/ensure list is sorted by start time
bool isSorted = true;
for (int i = 1; i < list.length; i++) {
if (list[i].start.compareTo(list[i - 1].start) < 0) {
isSorted = false;
break;
}
}
if (!isSorted) {
list.sort((a, b) => a.start.compareTo(b.start));
}
if (root == null) {
root = _buildBalanced(list, 0, list.length - 1);
} else {
// If tree is already populated, fallback to iterative insertion
for (final interval in list) {
insert(interval);
}
}
}