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* {
var it = iterator;
var 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;
}