diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..b277b8a --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,14 @@ +# Contributing + +## Public API changes + +`Microsoft.CodeAnalysis.PublicApiAnalyzers` tracks the library's public surface. A build fails when public members change without a matching baseline update. + +For an intentional API change: + +1. Add new declarations to `EnumerableAsyncProcessor/PublicAPI.Unshipped.txt`. +2. Prefix removed declarations with `*REMOVED*` in `PublicAPI.Unshipped.txt`. +3. Include the baseline changes in the same pull request as the code change so reviewers can inspect the public API diff. +4. Move approved declarations from `PublicAPI.Unshipped.txt` to `PublicAPI.Shipped.txt` when preparing a release. Keep `#nullable enable` as the first line in both files. + +Run `dotnet build` to verify the baseline on every target framework. diff --git a/EnumerableAsyncProcessor/EnumerableAsyncProcessor.csproj b/EnumerableAsyncProcessor/EnumerableAsyncProcessor.csproj index 7fd772d..92f39e8 100644 --- a/EnumerableAsyncProcessor/EnumerableAsyncProcessor.csproj +++ b/EnumerableAsyncProcessor/EnumerableAsyncProcessor.csproj @@ -6,6 +6,9 @@ enable latest 99.99.99 + $(WarningsAsErrors);RS0016;RS0017 + + $(NoWarn);RS0026 @@ -30,9 +33,15 @@ + + + + + + Tom Longhurst Various Enumerable Async Processors - Batch / Parallel / Rate Limited / One at a time diff --git a/EnumerableAsyncProcessor/PublicAPI.Shipped.txt b/EnumerableAsyncProcessor/PublicAPI.Shipped.txt new file mode 100644 index 0000000..24982ec --- /dev/null +++ b/EnumerableAsyncProcessor/PublicAPI.Shipped.txt @@ -0,0 +1,214 @@ +#nullable enable +abstract EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessorBase.EnumerableTaskCompletionSources.get -> System.Collections.Generic.IReadOnlyList! +abstract EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase.EnumerableTaskCompletionSources.get -> System.Collections.Generic.IReadOnlyList!>! +EnumerableAsyncProcessor.ActionTaskWrapper +EnumerableAsyncProcessor.ActionTaskWrapper.ActionTaskWrapper() -> void +EnumerableAsyncProcessor.ActionTaskWrapper.ActionTaskWrapper(System.Func! taskFactory, System.Threading.Tasks.TaskCompletionSource! taskCompletionSource) -> void +EnumerableAsyncProcessor.ActionTaskWrapper.Process(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.ActionTaskWrapper +EnumerableAsyncProcessor.ActionTaskWrapper.ActionTaskWrapper() -> void +EnumerableAsyncProcessor.ActionTaskWrapper.ActionTaskWrapper(System.Func!>! taskFactory, System.Threading.Tasks.TaskCompletionSource! taskCompletionSource) -> void +EnumerableAsyncProcessor.ActionTaskWrapper.Process(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ActionAsyncProcessorBuilder(int count, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> void +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ActionAsyncProcessorBuilder(int count, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> void +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ProcessInBatches(int batchSize) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ProcessInParallel(int maxConcurrency, System.TimeSpan timeSpan) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ProcessInParallel(int permitsPerWindow, System.TimeSpan window, int maxConcurrency) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ProcessInParallel(int? maxConcurrency = null, bool scheduleOnThreadPool = false) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ProcessOneAtATime() -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ProcessInBatches(int batchSize) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ProcessInParallel(int maxConcurrency, System.TimeSpan timeSpan) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ProcessInParallel(int permitsPerWindow, System.TimeSpan window, int maxConcurrency) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ProcessInParallel(int? maxConcurrency = null, bool scheduleOnThreadPool = false) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder.ProcessOneAtATime() -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder.AsyncEnumerableActionAsyncProcessorBuilder(System.Collections.Generic.IAsyncEnumerable! items, System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken) -> void +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder.AsyncEnumerableActionAsyncProcessorBuilder(System.Collections.Generic.IAsyncEnumerable! items, System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken) -> void +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder.ProcessInBatches(int batchSize) -> EnumerableAsyncProcessor.Extensions.IAsyncEnumerableProcessor! +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder.ProcessInParallel(int? maxConcurrency = null, bool scheduleOnThreadPool = false) -> EnumerableAsyncProcessor.Extensions.IAsyncEnumerableProcessor! +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder.ProcessOneAtATime() -> EnumerableAsyncProcessor.Extensions.IAsyncEnumerableProcessor! +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder.AsyncEnumerableActionAsyncProcessorBuilder(System.Collections.Generic.IAsyncEnumerable! items, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> void +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder.AsyncEnumerableActionAsyncProcessorBuilder(System.Collections.Generic.IAsyncEnumerable! items, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> void +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder.ProcessInBatches(int batchSize) -> EnumerableAsyncProcessor.Extensions.IAsyncEnumerableProcessor! +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder.ProcessInParallel(int? maxConcurrency = null, bool scheduleOnThreadPool = false) -> EnumerableAsyncProcessor.Extensions.IAsyncEnumerableProcessor! +EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder.ProcessOneAtATime() -> EnumerableAsyncProcessor.Extensions.IAsyncEnumerableProcessor! +EnumerableAsyncProcessor.Builders.AsyncEnumerableAsyncProcessorBuilder +EnumerableAsyncProcessor.Builders.AsyncEnumerableAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.AsyncEnumerableAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.AsyncEnumerableAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.AsyncEnumerableAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.AsyncEnumerableAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.AsyncEnumerableAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.AsyncEnumerableAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.AsyncEnumerableAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.AsyncProcessorBuilder +EnumerableAsyncProcessor.Builders.ExecutionCountAsyncProcessorBuilder +EnumerableAsyncProcessor.Builders.ExecutionCountAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector) -> EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ExecutionCountAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ExecutionCountAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector) -> EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ExecutionCountAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ExecutionCountAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector) -> EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ExecutionCountAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ExecutionCountAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector) -> EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ExecutionCountAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.ActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ProcessInBatches(int batchSize) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ProcessInParallel(int maxConcurrency, System.TimeSpan timeSpan) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ProcessInParallel(int permitsPerWindow, System.TimeSpan window, int maxConcurrency) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ProcessInParallel(int? maxConcurrency = null, bool scheduleOnThreadPool = false) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ProcessOneAtATime() -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ItemActionAsyncProcessorBuilder(System.Collections.Generic.IEnumerable! items, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> void +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ItemActionAsyncProcessorBuilder(System.Collections.Generic.IEnumerable! items, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> void +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ProcessInBatches(int batchSize) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ProcessInParallel(int maxConcurrency, System.TimeSpan timeSpan) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ProcessInParallel(int permitsPerWindow, System.TimeSpan window, int maxConcurrency) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ProcessInParallel(int? maxConcurrency = null, bool scheduleOnThreadPool = false) -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder.ProcessOneAtATime() -> EnumerableAsyncProcessor.Interfaces.IAsyncProcessor! +EnumerableAsyncProcessor.Builders.ItemAsyncProcessorBuilder +EnumerableAsyncProcessor.Builders.ItemAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ItemAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ItemAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ItemAsyncProcessorBuilder.ForEachAsync(System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ItemAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ItemAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ItemAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Builders.ItemAsyncProcessorBuilder.SelectAsync(System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions +EnumerableAsyncProcessor.Extensions.EnumerableExtensions +EnumerableAsyncProcessor.Extensions.IAsyncEnumerableProcessor +EnumerableAsyncProcessor.Extensions.IAsyncEnumerableProcessor.ExecuteAsync() -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.Extensions.IAsyncEnumerableProcessor +EnumerableAsyncProcessor.Extensions.IAsyncEnumerableProcessor.ExecuteAsync() -> System.Collections.Generic.IAsyncEnumerable! +EnumerableAsyncProcessor.Extensions.ParallelExtensions +EnumerableAsyncProcessor.Interfaces.IAsyncProcessor +EnumerableAsyncProcessor.Interfaces.IAsyncProcessor.CancelAll() -> void +EnumerableAsyncProcessor.Interfaces.IAsyncProcessor.GetAwaiter() -> System.Runtime.CompilerServices.TaskAwaiter +EnumerableAsyncProcessor.Interfaces.IAsyncProcessor.GetEnumerableTasks() -> System.Collections.Generic.IEnumerable! +EnumerableAsyncProcessor.Interfaces.IAsyncProcessor.WaitAsync() -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.Interfaces.IAsyncProcessor +EnumerableAsyncProcessor.Interfaces.IAsyncProcessor.CancelAll() -> void +EnumerableAsyncProcessor.Interfaces.IAsyncProcessor.GetAwaiter() -> System.Runtime.CompilerServices.TaskAwaiter +EnumerableAsyncProcessor.Interfaces.IAsyncProcessor.GetEnumerableTasks() -> System.Collections.Generic.IEnumerable!>! +EnumerableAsyncProcessor.Interfaces.IAsyncProcessor.GetResultsAsync() -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.Interfaces.IAsyncProcessor.GetResultsAsyncEnumerable() -> System.Collections.Generic.IAsyncEnumerable! +EnumerableAsyncProcessor.ItemTaskWrapper +EnumerableAsyncProcessor.ItemTaskWrapper.ItemTaskWrapper() -> void +EnumerableAsyncProcessor.ItemTaskWrapper.ItemTaskWrapper(TInput input, System.Func!>! taskFactory, System.Threading.Tasks.TaskCompletionSource! taskCompletionSource) -> void +EnumerableAsyncProcessor.ItemTaskWrapper.Process(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.ItemTaskWrapper +EnumerableAsyncProcessor.ItemTaskWrapper.ItemTaskWrapper() -> void +EnumerableAsyncProcessor.ItemTaskWrapper.ItemTaskWrapper(TInput input, System.Func! taskFactory, System.Threading.Tasks.TaskCompletionSource! taskCompletionSource) -> void +EnumerableAsyncProcessor.ItemTaskWrapper.Process(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessor.AbstractAsyncProcessor(int count, System.Func! taskSelector, System.Threading.CancellationTokenSource! cancellationTokenSource) -> void +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessor.AbstractAsyncProcessor(System.Collections.Generic.IEnumerable! items, System.Func! taskSelector, System.Threading.CancellationTokenSource! cancellationTokenSource) -> void +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessorBase +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessorBase.AbstractAsyncProcessorBase(System.Threading.CancellationTokenSource! cancellationTokenSource) -> void +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessorBase.CancelAll() -> void +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessorBase.Dispose() -> void +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessorBase.DisposeAsync() -> System.Threading.Tasks.ValueTask +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessorBase.GetAwaiter() -> System.Runtime.CompilerServices.TaskAwaiter +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessorBase.GetEnumerableTasks() -> System.Collections.Generic.IEnumerable! +EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessorBase.WaitAsync() -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.AsyncEnumerableBatchProcessor +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.AsyncEnumerableBatchProcessor.ExecuteAsync() -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.AsyncEnumerableOneAtATimeProcessor +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.AsyncEnumerableOneAtATimeProcessor.ExecuteAsync() -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.AsyncEnumerableParallelProcessor +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.AsyncEnumerableParallelProcessor.ExecuteAsync() -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.ResultProcessors.ResultAsyncEnumerableBatchProcessor +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.ResultProcessors.ResultAsyncEnumerableBatchProcessor.ExecuteAsync() -> System.Collections.Generic.IAsyncEnumerable! +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.ResultProcessors.ResultAsyncEnumerableOneAtATimeProcessor +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.ResultProcessors.ResultAsyncEnumerableOneAtATimeProcessor.ExecuteAsync() -> System.Collections.Generic.IAsyncEnumerable! +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.ResultProcessors.ResultAsyncEnumerableParallelProcessor +EnumerableAsyncProcessor.RunnableProcessors.AsyncEnumerable.ResultProcessors.ResultAsyncEnumerableParallelProcessor.ExecuteAsync() -> System.Collections.Generic.IAsyncEnumerable! +EnumerableAsyncProcessor.RunnableProcessors.BatchAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.BatchAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.OneAtATimeAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.OneAtATimeAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ParallelAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ParallelAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessor.ResultAbstractAsyncProcessor(System.Collections.Generic.IEnumerable! items, System.Func!>! taskSelector, System.Threading.CancellationTokenSource! cancellationTokenSource) -> void +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessor.ResultAbstractAsyncProcessor(int count, System.Func!>! taskSelector, System.Threading.CancellationTokenSource! cancellationTokenSource) -> void +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase.CancelAll() -> void +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase.Dispose() -> void +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase.DisposeAsync() -> System.Threading.Tasks.ValueTask +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase.GetAwaiter() -> System.Runtime.CompilerServices.TaskAwaiter +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase.GetEnumerableTasks() -> System.Collections.Generic.IEnumerable!>! +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase.GetResultsAsync() -> System.Threading.Tasks.Task! +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase.GetResultsAsyncEnumerable() -> System.Collections.Generic.IAsyncEnumerable! +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase.ResultAbstractAsyncProcessorBase(System.Threading.CancellationTokenSource! cancellationTokenSource) -> void +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.ResultBatchAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.ResultBatchAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.ResultOneAtATimeAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.ResultOneAtATimeAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.ResultParallelAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.ResultParallelAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.ResultTimedRateLimitedParallelAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.ResultTimedRateLimitedParallelAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.TimedRateLimitedParallelAsyncProcessor +EnumerableAsyncProcessor.RunnableProcessors.TimedRateLimitedParallelAsyncProcessor +override EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessor.EnumerableTaskCompletionSources.get -> System.Collections.Generic.IReadOnlyList! +override EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessor.EnumerableTaskCompletionSources.get -> System.Collections.Generic.IReadOnlyList! +override EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessor.EnumerableTaskCompletionSources.get -> System.Collections.Generic.IReadOnlyList!>! +override EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessor.EnumerableTaskCompletionSources.get -> System.Collections.Generic.IReadOnlyList!>! +readonly EnumerableAsyncProcessor.ActionTaskWrapper.TaskCompletionSource -> System.Threading.Tasks.TaskCompletionSource! +readonly EnumerableAsyncProcessor.ActionTaskWrapper.TaskFactory -> System.Func! +readonly EnumerableAsyncProcessor.ActionTaskWrapper.TaskCompletionSource -> System.Threading.Tasks.TaskCompletionSource! +readonly EnumerableAsyncProcessor.ActionTaskWrapper.TaskFactory -> System.Func!>! +readonly EnumerableAsyncProcessor.ItemTaskWrapper.Input -> TInput +readonly EnumerableAsyncProcessor.ItemTaskWrapper.TaskCompletionSource -> System.Threading.Tasks.TaskCompletionSource! +readonly EnumerableAsyncProcessor.ItemTaskWrapper.TaskFactory -> System.Func!>! +readonly EnumerableAsyncProcessor.ItemTaskWrapper.Input -> TInput +readonly EnumerableAsyncProcessor.ItemTaskWrapper.TaskCompletionSource -> System.Threading.Tasks.TaskCompletionSource! +readonly EnumerableAsyncProcessor.ItemTaskWrapper.TaskFactory -> System.Func! +readonly EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessor.TaskWrappers -> EnumerableAsyncProcessor.ActionTaskWrapper[]! +readonly EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessor.TaskWrappers -> EnumerableAsyncProcessor.ItemTaskWrapper[]! +readonly EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessorBase.CancellationToken -> System.Threading.CancellationToken +readonly EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessor.TaskWrappers -> EnumerableAsyncProcessor.ItemTaskWrapper[]! +readonly EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessor.TaskWrappers -> EnumerableAsyncProcessor.ActionTaskWrapper[]! +readonly EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase.CancellationToken -> System.Threading.CancellationToken +static EnumerableAsyncProcessor.Builders.AsyncProcessorBuilder.WithExecutionCount(int count) -> EnumerableAsyncProcessor.Builders.ExecutionCountAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Builders.AsyncProcessorBuilder.WithItems(System.Collections.Generic.IEnumerable! items) -> EnumerableAsyncProcessor.Builders.ItemAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.ForEachAsync(this System.Collections.Generic.IAsyncEnumerable! items, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.ForEachAsync(this System.Collections.Generic.IAsyncEnumerable! items, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.ProcessInParallel(this System.Collections.Generic.IAsyncEnumerable! items, System.Func!>! taskSelector, int maxConcurrency, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.ProcessInParallel(this System.Collections.Generic.IAsyncEnumerable! items, System.Func!>! taskSelector, int? maxConcurrency, bool scheduleOnThreadPool, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.ProcessInParallel(this System.Collections.Generic.IAsyncEnumerable! items, System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.ProcessInParallel(this System.Collections.Generic.IAsyncEnumerable! items, int maxConcurrency, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.ProcessInParallel(this System.Collections.Generic.IAsyncEnumerable! items, int? maxConcurrency, bool scheduleOnThreadPool, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.ProcessInParallel(this System.Collections.Generic.IAsyncEnumerable! items, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.SelectAsync(this System.Collections.Generic.IAsyncEnumerable! items, System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.SelectAsync(this System.Collections.Generic.IAsyncEnumerable! items, System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableActionAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.SelectMany(this System.Collections.Generic.IAsyncEnumerable! items, System.Func!>! selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.SelectMany(this System.Collections.Generic.IAsyncEnumerable! items, System.Func!>! selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.SelectMany(this System.Collections.Generic.IAsyncEnumerable! items, System.Func! selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.SelectManyAsync(this System.Collections.Generic.IAsyncEnumerable! items, System.Func!>!>! selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.SelectManyAsync(this System.Collections.Generic.IAsyncEnumerable! items, System.Func!>!>! selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.SelectManyAsync(this System.Collections.Generic.IAsyncEnumerable! items, System.Func!>! selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static EnumerableAsyncProcessor.Extensions.AsyncEnumerableExtensions.ToAsyncProcessorBuilder(this System.Collections.Generic.IAsyncEnumerable! items) -> EnumerableAsyncProcessor.Builders.AsyncEnumerableAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Extensions.EnumerableExtensions.ForEachAsync(this System.Collections.Generic.IEnumerable! items, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Extensions.EnumerableExtensions.ForEachAsync(this System.Collections.Generic.IEnumerable! items, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Extensions.EnumerableExtensions.SelectAsync(this System.Collections.Generic.IEnumerable! items, System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Extensions.EnumerableExtensions.SelectAsync(this System.Collections.Generic.IEnumerable! items, System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> EnumerableAsyncProcessor.Builders.ItemActionAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Extensions.EnumerableExtensions.SelectManyAsync(this System.Collections.Generic.IEnumerable! items, System.Func!>! selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static EnumerableAsyncProcessor.Extensions.EnumerableExtensions.SelectManyAsync(this System.Collections.Generic.IEnumerable! items, System.Func!>!>! selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static EnumerableAsyncProcessor.Extensions.EnumerableExtensions.SelectManyAsync(this System.Collections.Generic.IEnumerable! items, System.Func!>!>! selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static EnumerableAsyncProcessor.Extensions.EnumerableExtensions.SelectManyAsync(this System.Collections.Generic.IEnumerable! items, System.Func!>! selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static EnumerableAsyncProcessor.Extensions.EnumerableExtensions.ToAsyncProcessorBuilder(this System.Collections.Generic.IEnumerable! items) -> EnumerableAsyncProcessor.Builders.ItemAsyncProcessorBuilder! +static EnumerableAsyncProcessor.Extensions.ParallelExtensions.InParallelAsync(this System.Collections.Generic.IEnumerable! source, int levelOfParallelism, System.Func!>! taskSelector) -> System.Threading.Tasks.Task! +static EnumerableAsyncProcessor.Extensions.ParallelExtensions.InParallelAsync(this System.Collections.Generic.IEnumerable! source, int levelOfParallelism, System.Func!>! taskSelector, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static EnumerableAsyncProcessor.Extensions.ParallelExtensions.InParallelAsync(this System.Collections.Generic.IEnumerable! source, int levelOfParallelism, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static EnumerableAsyncProcessor.Extensions.ParallelExtensions.InParallelAsync(this System.Collections.Generic.IEnumerable! source, int levelOfParallelism, System.Action! taskSelector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static EnumerableAsyncProcessor.Extensions.ParallelExtensions.InParallelAsync(this System.Collections.Generic.IEnumerable! source, int levelOfParallelism, System.Func! taskSelector) -> System.Threading.Tasks.Task! +static EnumerableAsyncProcessor.Extensions.ParallelExtensions.InParallelAsync(this System.Collections.Generic.IEnumerable! source, int levelOfParallelism, System.Func! taskSelector, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +virtual EnumerableAsyncProcessor.RunnableProcessors.Abstract.AbstractAsyncProcessorBase.DisposeAsyncCore() -> System.Threading.Tasks.ValueTask +virtual EnumerableAsyncProcessor.RunnableProcessors.ResultProcessors.Abstract.ResultAbstractAsyncProcessorBase.DisposeAsyncCore() -> System.Threading.Tasks.ValueTask diff --git a/EnumerableAsyncProcessor/PublicAPI.Unshipped.txt b/EnumerableAsyncProcessor/PublicAPI.Unshipped.txt new file mode 100644 index 0000000..7dc5c58 --- /dev/null +++ b/EnumerableAsyncProcessor/PublicAPI.Unshipped.txt @@ -0,0 +1 @@ +#nullable enable