Skip to content

Commit 78d132b

Browse files
committed
Removed SuspendUntilFirsts reactive operator
1 parent ad387e9 commit 78d132b

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

Core/Cleipnir.ResilientFunctions/Reactive/Extensions/LeafOperators.cs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -84,29 +84,28 @@ internal static List<T> Existing<T>(this IReactiveChain<T> s, out bool streamCom
8484
}
8585

8686
#region First
87-
public static Task<List<T>> SuspendUntilFirsts<T>(this IReactiveChain<T> s, int count, TimeSpan? maxWait = null)
88-
=> s.Take(count).ToList(maxWait: maxWait ?? TimeSpan.Zero);
89-
9087
public static Task<T> First<T>(this IReactiveChain<T> s, TimeSpan? maxWait = null)
9188
=> FirstOrNone(s, maxWait)
9289
.SelectAsync(o => o.HasValue ? o.Value : throw new NoResultException());
93-
public static Task<T?> FirstOrDefault<T>(this IReactiveChain<T> s)
94-
=> FirstOrNone(s)
90+
91+
public static Task<T?> FirstOrDefault<T>(this IReactiveChain<T> s, TimeSpan? maxWait = null)
92+
=> FirstOrNone(s, maxWait)
9593
.SelectAsync(o => o.HasValue ? o.Value : default);
9694
public static Task<Option<T>> FirstOrNone<T>(this IReactiveChain<T> s, TimeSpan? maxWait = null)
9795
=> Firsts(s, count: 1, maxWait)
9896
.SelectAsync(
9997
l => l.Any() ? new Option<T>(l.First()) : Option<T>.NoValue
10098
);
99+
101100
public static Task<T> FirstOfType<T>(this IReactiveChain<object> s, TimeSpan? maxWait = null)
102101
=> s.OfType<T>().First(maxWait);
102+
public static Task<Option<T>> FirstOfType<T>(this IReactiveChain<object> s, string timeoutId, DateTime expiresAt, TimeSpan? maxWait = null)
103+
=> s.OfType<T>().TakeUntilTimeout(timeoutId, expiresAt).FirstOrNone(maxWait);
104+
public static Task<Option<T>> FirstOfType<T>(this IReactiveChain<object> s, string timeoutId, TimeSpan expiresIn, TimeSpan? maxWait = null)
105+
=> s.OfType<T>().TakeUntilTimeout(timeoutId, expiresIn).FirstOrNone(maxWait);
103106

104-
public static Task<Option<T>> FirstOfType<T>(this IReactiveChain<object> s, string timeoutId, DateTime expiresAt)
105-
=> s.OfType<T>().TakeUntilTimeout(timeoutId, expiresAt).FirstOrNone();
106-
public static Task<Option<T>> FirstOfType<T>(this IReactiveChain<object> s, string timeoutId, TimeSpan expiresIn)
107-
=> s.OfType<T>().TakeUntilTimeout(timeoutId, expiresIn).FirstOrNone();
108-
109-
public static Task<T> FirstOf<T>(this IReactiveChain<object> s) => s.FirstOfType<T>();
107+
public static Task<T> FirstOf<T>(this IReactiveChain<object> s, TimeSpan? maxWait = null)
108+
=> s.FirstOfType<T>(maxWait);
110109

111110
public static Task<List<T>> Firsts<T>(this IReactiveChain<T> s, int count, TimeSpan? maxWait = null)
112111
=> s.Take(count).ToList(maxWait);

0 commit comments

Comments
 (0)