removeRange method

void removeRange(
  1. int start,
  2. int end
)

Removes entries in [start, end), shifting the suffix left.

Implementation

void removeRange(int start, int end) {
  final n = end - start;
  if (n <= 0) {
    return;
  }
  final cb = _onNidRemoved;
  if (cb != null) {
    for (int i = start; i < end; i++) {
      cb(_orderNids[i]);
    }
  }
  // memmove: shift [start + n, _len) to [start, _len - n).
  _orderNids.setRange(start, _len - n, _orderNids, start + n);
  _len -= n;
  _onMutated();
}