ListQueue.from(Iterable elements)

Create a ListQueue containing all elements.

The elements are added to the queue, as by addLast, in the order given by elements.iterator.

All elements should be assignable to E.

Source

factory ListQueue.from(Iterable elements) {
  if (elements is List) {
    int length = elements.length;
    ListQueue<E> queue = new ListQueue(length + 1);
    assert(queue._table.length > length);
    List sourceList = elements;
    queue._table.setRange(0, length, sourceList, 0);
    queue._tail = length;
    return queue;
  } else {
    int capacity = _INITIAL_CAPACITY;
    if (elements is EfficientLength) {
      capacity = elements.length;
    }
    ListQueue<E> result = new ListQueue<E>(capacity);
    for (final E element in elements) {
      result.addLast(element);
    }
    return result;
  }
}