copyWithin method
Copies elements from one part of the slice to another part of itself
The edge conditions can be changes with sInc and eInc.
sInc is whether the start is inclusive and eInc is whether the end is inclusive.
Implementation
void copyWithin(int start, int end, int dst,
{bool sInc = true, bool enInc = false}) {
if (!sInc) start += 1;
if (enInc) end += 1;
final length = len();
if (start < 0 ||
start >= length ||
end < 0 ||
end > length ||
dst < 0 ||
dst >= length) {
panic("Index out of bounds");
}
if (dst < start) {
for (var i = start, j = dst; i < end; i++, j++) {
_list[j + _start] = _list[i + _start];
}
} else {
for (var i = end - 1, j = dst + end - start - 1; i >= start; i--, j--) {
_list[j + _start] = _list[i + _start];
}
}
}