repeat<O> method

ZIO<R, E, A> repeat<O>(
  1. Schedule<R, E, A, O> schedule
)

Repeat this ZIO using the given Schedule.

Implementation

ZIO<R, E, A> repeat<O>(Schedule<R, E, A, O> schedule) =>
    schedule.driver<R, E>().flatMap((driver) {
      ZIO<R, E, A> loop() => flatMap((a) => driver.next(a).match(
            (e) => e.match(
              () => ZIO.succeed(a),
              (e) => ZIO.fail(e),
            ),
            (_) => loop(),
          ));

      return loop();
    });