insert3 method
Inserts three elements into the iterable at the specified index.
Takes the specified elements and inserts them into the iterable at the
position index.
If index is less than zero, an ArgumentError is thrown.
If iteration of this iterable is exausted before the position index
is reached, a RangeError is thrown.
Implementation
Iterable<T> insert3(int index, T v1, T v2, T v3) sync* {
if (index == 0) {
yield* prepend3(v1, v2, v3);
return;
}
if (index < 0) {
throw ArgumentError('Parameter "index" must be greater than zero.');
}
final iterator = this.iterator;
var i = 0;
while (iterator.moveNext()) {
if (i == index) {
yield v1;
yield v2;
yield v3;
}
yield iterator.current;
i++;
}
if (index >= i) {
throw RangeError.index(index, this, null, null, i);
}
}