insertWith<A> method
Insert element into the Iterable at the first position where
it is less than or equal to the next element
based on order (Order).
order refers to values of type A
extracted from element using extract.
Note: The element is added before an equal element already in the Iterable.
Implementation
Iterable<T> insertWith<A>(
A Function(T instance) extract,
Order<A> order,
T element,
) sync* {
final it = iterator;
final elementValue = extract(element);
while (it.moveNext()) {
if (order.compare(extract(it.current), elementValue) < 0) {
yield it.current;
continue;
}
yield element;
do {
yield it.current;
} while (it.moveNext());
return;
}
yield element;
}