Iterable<E> takeWhile(bool test(E element))

Returns a lazy iterable of the leading elements satisfying test.

The filtering happens lazily. Every new iterator of the returned iterable starts iterating over the elements of this.

The elements can be computed by stepping through iterator until an element is found where test(element) is false. At that point, the returned iterable stops (its moveNext() returns false).

Source

Iterable<E> takeWhile(bool test(E element)) {
  return new TakeWhileIterable<E>(this, test);
}