@@ -84,29 +84,28 @@ internal static List<T> Existing<T>(this IReactiveChain<T> s, out bool streamCom
84
84
}
85
85
86
86
#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
-
90
87
public static Task < T > First < T > ( this IReactiveChain < T > s , TimeSpan ? maxWait = null )
91
88
=> FirstOrNone ( s , maxWait )
92
89
. 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 )
95
93
. SelectAsync ( o => o . HasValue ? o . Value : default ) ;
96
94
public static Task < Option < T > > FirstOrNone < T > ( this IReactiveChain < T > s , TimeSpan ? maxWait = null )
97
95
=> Firsts ( s , count : 1 , maxWait )
98
96
. SelectAsync (
99
97
l => l . Any ( ) ? new Option < T > ( l . First ( ) ) : Option < T > . NoValue
100
98
) ;
99
+
101
100
public static Task < T > FirstOfType < T > ( this IReactiveChain < object > s , TimeSpan ? maxWait = null )
102
101
=> 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 ) ;
103
106
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 ) ;
110
109
111
110
public static Task < List < T > > Firsts < T > ( this IReactiveChain < T > s , int count , TimeSpan ? maxWait = null )
112
111
=> s . Take ( count ) . ToList ( maxWait ) ;
0 commit comments