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