|
@@ -30,9 +30,15 @@ namespace System.Linq
|
|
|
if (accumulator == null)
|
|
|
throw Error.ArgumentNull(nameof(accumulator));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, accumulator);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TSource> Core(IAsyncEnumerable<TSource> source, Func<TSource, TSource, TSource> accumulator, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return AsyncEnumerable.Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
await using var e = source.GetConfiguredAsyncEnumerator(cancellationToken, false);
|
|
|
|
|
@@ -70,9 +76,15 @@ namespace System.Linq
|
|
|
if (accumulator == null)
|
|
|
throw Error.ArgumentNull(nameof(accumulator));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, seed, accumulator);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TAccumulate> Core(IAsyncEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> accumulator, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return AsyncEnumerable.Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TAccumulate> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
var res = seed;
|
|
|
|
|
@@ -101,9 +113,15 @@ namespace System.Linq
|
|
|
if (accumulator == null)
|
|
|
throw Error.ArgumentNull(nameof(accumulator));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, accumulator);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TSource> Core(IAsyncEnumerable<TSource> source, Func<TSource, TSource, ValueTask<TSource>> accumulator, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return AsyncEnumerable.Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
await using var e = source.GetConfiguredAsyncEnumerator(cancellationToken, false);
|
|
|
|
|
@@ -140,9 +158,15 @@ namespace System.Linq
|
|
|
if (accumulator == null)
|
|
|
throw Error.ArgumentNull(nameof(accumulator));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, accumulator);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TSource> Core(IAsyncEnumerable<TSource> source, Func<TSource, TSource, CancellationToken, ValueTask<TSource>> accumulator, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return AsyncEnumerable.Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
await using var e = source.GetConfiguredAsyncEnumerator(cancellationToken, false);
|
|
|
|
|
@@ -181,9 +205,15 @@ namespace System.Linq
|
|
|
if (accumulator == null)
|
|
|
throw Error.ArgumentNull(nameof(accumulator));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, seed, accumulator);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TAccumulate> Core(IAsyncEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, ValueTask<TAccumulate>> accumulator, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return AsyncEnumerable.Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TAccumulate> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
var res = seed;
|
|
|
|
|
@@ -215,9 +245,15 @@ namespace System.Linq
|
|
|
if (accumulator == null)
|
|
|
throw Error.ArgumentNull(nameof(accumulator));
|
|
|
|
|
|
+#if HAS_ASYNC_ENUMERABLE_CANCELLATION
|
|
|
+ return Core(source, seed, accumulator);
|
|
|
+
|
|
|
+ static async IAsyncEnumerable<TAccumulate> Core(IAsyncEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, CancellationToken, ValueTask<TAccumulate>> accumulator, [System.Runtime.CompilerServices.EnumeratorCancellation]CancellationToken cancellationToken = default)
|
|
|
+#else
|
|
|
return AsyncEnumerable.Create(Core);
|
|
|
|
|
|
async IAsyncEnumerator<TAccumulate> Core(CancellationToken cancellationToken)
|
|
|
+#endif
|
|
|
{
|
|
|
var res = seed;
|
|
|
|