@Override
  default Iterator<T> iterator() {
    return new SupplierIterator<>(this);
  }
A {@link Supplier} that returns {@code null} when there are no elements left, with an {@link Iterable} view to
support for each loop.

@param <T> Type of element returned
planetiler-core/src/main/java/com/onthegomap/planetiler/collection/IterableOnce.java