namespace InnovEnergy.Lib.Utils.Try; [Obsolete] public static class Policy { internal static Random Rng { get; } = new Random(); internal static TimeSpan ApplyJitter(this TimeSpan timeSpan, Double ratio) { return timeSpan * (1 - ratio + Rng.NextDouble() * 2 * ratio); } public static TrySync<R> Try<R>(Func<R> func) { return new TrySync<R>(func); } public static TrySync<R> TryApply<T,R>(this T t, Func<T, R> func) { return new TrySync<R>(() => func(t)); } public static TryAsync<R> Try<R>(Func<Task<R>> func) { return new TryAsync<R>(func); } public static TryAsync<R> TryApply<T,R>(this T t, Func<T, Task<R>> func) { return new TryAsync<R>(() => func(t)); } }