public static @NotNull <E> JBIterable<E> once(@NotNull Iterator<? extends E> iterator) {
    return of(Ref.create(iterator)).intercept(iterator1 -> {
      Ref<? extends Iterator<? extends E>> ref = iterator1.next();
      Iterator<? extends E> result = ref.get();
      if (result == null) throw new UnsupportedOperationException();
      ref.set(null);
      return result;
    });
  }
public static @NotNull <E> JBIterable<E> once(@NotNull Iterator<? extends E> iterator)