|
|
@@ -69,9 +69,15 @@ namespace System.Linq
|
|
|
if (selector == null)
|
|
|
throw Error.ArgumentNull(nameof(selector));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, selector);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TResult> Core(IAsyncEnumerable<TSource> source, Func<TSource, int, IAsyncEnumerable<TResult>> selector, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TResult> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
var index = -1;
|
|
|
|
|
|
@@ -99,9 +105,15 @@ namespace System.Linq
|
|
|
if (selector == null)
|
|
|
throw Error.ArgumentNull(nameof(selector));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, selector);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TResult> Core(IAsyncEnumerable<TSource> source, Func<TSource, int, ValueTask<IAsyncEnumerable<TResult>>> selector, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TResult> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
var index = -1;
|
|
|
|
|
|
@@ -130,9 +142,15 @@ namespace System.Linq
|
|
|
if (selector == null)
|
|
|
throw Error.ArgumentNull(nameof(selector));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, selector);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TResult> Core(IAsyncEnumerable<TSource> source, Func<TSource, int, CancellationToken, ValueTask<IAsyncEnumerable<TResult>>> selector, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TResult> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
var index = -1;
|
|
|
|
|
|
@@ -174,9 +192,15 @@ namespace System.Linq
|
|
|
if (resultSelector == null)
|
|
|
throw Error.ArgumentNull(nameof(resultSelector));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, collectionSelector, resultSelector);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TResult> Core(IAsyncEnumerable<TSource> source, Func<TSource, IAsyncEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TResult> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
await foreach (var element in source.WithCancellation(cancellationToken).ConfigureAwait(false))
|
|
|
{
|
|
|
@@ -199,9 +223,15 @@ namespace System.Linq
|
|
|
if (resultSelector == null)
|
|
|
throw Error.ArgumentNull(nameof(resultSelector));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, collectionSelector, resultSelector);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TResult> Core(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<IAsyncEnumerable<TCollection>>> collectionSelector, Func<TSource, TCollection, ValueTask<TResult>> resultSelector, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TResult> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
await foreach (var element in source.WithCancellation(cancellationToken).ConfigureAwait(false))
|
|
|
{
|
|
|
@@ -225,9 +255,15 @@ namespace System.Linq
|
|
|
if (resultSelector == null)
|
|
|
throw Error.ArgumentNull(nameof(resultSelector));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, collectionSelector, resultSelector);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TResult> Core(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<IAsyncEnumerable<TCollection>>> collectionSelector, Func<TSource, TCollection, CancellationToken, ValueTask<TResult>> resultSelector, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TResult> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
await foreach (var element in source.WithCancellation(cancellationToken).ConfigureAwait(false))
|
|
|
{
|
|
|
@@ -262,9 +298,15 @@ namespace System.Linq
|
|
|
if (resultSelector == null)
|
|
|
throw Error.ArgumentNull(nameof(resultSelector));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, collectionSelector, resultSelector);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TResult> Core(IAsyncEnumerable<TSource> source, Func<TSource, int, IAsyncEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TResult> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
var index = -1;
|
|
|
|
|
|
@@ -294,9 +336,15 @@ namespace System.Linq
|
|
|
if (resultSelector == null)
|
|
|
throw Error.ArgumentNull(nameof(resultSelector));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, collectionSelector, resultSelector);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TResult> Core(IAsyncEnumerable<TSource> source, Func<TSource, int, ValueTask<IAsyncEnumerable<TCollection>>> collectionSelector, Func<TSource, TCollection, ValueTask<TResult>> resultSelector, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TResult> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
var index = -1;
|
|
|
|
|
|
@@ -327,9 +375,15 @@ namespace System.Linq
|
|
|
if (resultSelector == null)
|
|
|
throw Error.ArgumentNull(nameof(resultSelector));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, collectionSelector, resultSelector);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TResult> Core(IAsyncEnumerable<TSource> source, Func<TSource, int, CancellationToken, ValueTask<IAsyncEnumerable<TCollection>>> collectionSelector, Func<TSource, TCollection, CancellationToken, ValueTask<TResult>> resultSelector, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TResult> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
var index = -1;
|
|
|
|