code: public final static <T> Stream<T> cycleUntil(final Stream<T> stream, final Predicate<? super T> predicate) {
          return Streams.takeUntil(Streams.cycle(stream), predicate);
      }
docs: Repeat in a Stream until specified predicate holds
  
  <pre>
  {@code
  count =0;
  assertThat(Streams.cycleUntil(Stream.of(1,2,2,3)
  ,next -> count++>10 )
  .collect(CyclopsCollectors.toList()),equalTo(Arrays.asList(1, 2, 2, 3, 1, 2, 2, 3, 1, 2, 2)));
  
  }
  </pre>
  @param predicate
  repeat while true
  @return Repeating Stream