public static ISequence <TResult> CreateSingleResultOperator <TSource, TResult>( ISequence <TSource> source, Func <IIterator <TSource>, CancellationToken, Task <TResult> > evaluate ) { return(Create(context => Iterator.CreateSingleResultOperator <TSource, TResult>(source.Start(context), evaluate))); }
public static ISequence <T> FirstOrDefault <T>(this ISequence <T> source) { return(Sequence.Create(context => Iterator.CreateSingleResultOperator <T, T>(source.Start(context), async(iter, cancel) => await iter.MoveNext(cancel).ConfigureAwait(false) ? iter.Current : default(T) ))); }