/// <summary> /// Keeps retrying the computation, until the scheduler expires /// </summary> /// <param name="ma">Computation to retry</param> /// <param name="schedule">Scheduler strategy for retrying</param> /// <typeparam name="RT">Runtime</typeparam> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Aff <A> retry <A>(Schedule schedule, Aff <A> ma) => ScheduleAff <A> .Retry(ma, schedule);
/// <summary> /// Keeps retrying the computation, until the scheduler expires /// </summary> /// <param name="ma">Computation to retry</param> /// <param name="schedule">Scheduler strategy for retrying</param> /// <typeparam name="RT">Runtime</typeparam> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Aff <RT, A> retry <RT, A>(Schedule schedule, Aff <RT, A> ma) where RT : struct, HasCancel <RT> => ScheduleAff <RT, A> .Retry(ma, schedule);
/// <summary> /// Keeps retrying the computation /// </summary> /// <param name="ma">Computation to retry</param> /// <typeparam name="RT">Runtime</typeparam> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Aff <A> retry <A>(Aff <A> ma) => ScheduleAff <A> .Retry(ma, Schedule.Forever);
/// <summary> /// Keeps retrying the computation /// </summary> /// <param name="ma">Computation to retry</param> /// <typeparam name="RT">Runtime</typeparam> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Aff <RT, A> retry <RT, A>(Aff <RT, A> ma) where RT : struct, HasCancel <RT> => ScheduleAff <RT, A> .Retry(ma, Schedule.Forever);
/// <summary> /// Keeps retrying the computation /// </summary> /// <param name="ma">Computation to Retry</param> /// <param name="schedule">Scheduler strategy for Retrying</param> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Aff <A> Retry <A>(this Aff <A> ma, Schedule schedule) => ScheduleAff <A> .Retry(ma, schedule);
/// <summary> /// Keeps retrying the computation /// </summary> /// <param name="ma">Computation to Retry</param> /// <param name="schedule">Scheduler strategy for Retrying</param> /// <typeparam name="RT">Runtime</typeparam> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Aff <RT, A> Retry <RT, A>(this Aff <RT, A> ma, Schedule schedule) where RT : struct, HasCancel <RT> => ScheduleAff <RT, A> .Retry(ma, schedule);