copyRange<T> static method
void
copyRange<T>(
- SignalList<
T> target, - int at,
- List<
T> source, [ - int? start,
- int? end,
override
Copy source items in given range to target
Implementation
static void copyRange<T>(SignalList<T> target, int at, List<T> source,
[int? start, int? end]) {
start ??= 0;
end = RangeError.checkValidRange(start, end, source.length);
var length = end - start;
if (target.length < at + length) {
throw ArgumentError.value(target, 'target',
'Not big enough to hold $length elements at position $at');
}
if (!identical(source, target) || start >= at) {
for (var i = 0; i < length; i++) {
target.value[at + i] = source[start + i];
}
} else {
for (var i = length; --i >= 0;) {
target.value[at + i] = source[start + i];
}
}
target.emit();
}