insertAllKeys method

void insertAllKeys(
  1. int index,
  2. List<TKey> keys
)

Inserts the nids of keys at visible position index, preserving their relative order. Each key must be registered.

Implementation

void insertAllKeys(int index, List<TKey> keys) {
  final n = keys.length;
  if (n == 0) {
    return;
  }
  _ensureOrderCapacity(_len + n);
  // memmove: shift [index, _len) to [index + n, _len + n).
  _orderNids.setRange(index + n, _len + n, _orderNids, index);
  for (int i = 0; i < n; i++) {
    final nid = _nids[keys[i]]!;
    _orderNids[index + i] = nid;
  }
  _len += n;
  final cb = _onNidAdded;
  if (cb != null) {
    for (int i = 0; i < n; i++) {
      cb(_orderNids[index + i]);
    }
  }
  _onMutated();
}