|
1 | 1 | # TaskSeq
|
2 | 2 | An implementation `IAsyncEnumerableM<'T>` as a `taskSeq` CE for F# with accompanying `TaskSeq` module.
|
3 | 3 |
|
4 |
| -## Coming up!!! |
| 4 | +## In progress!!! |
5 | 5 |
|
6 | 6 | It's based on [Don Symes `taskSeq.fs`](https://github.com/dotnet/fsharp/blob/d5312aae8aad650f0043f055bb14c3aa8117e12e/tests/benchmarks/CompiledCodeBenchmarks/TaskPerf/TaskPerf/taskSeq.fs)
|
7 | 7 | but expanded with useful utility functions and a few extra binding overloads.
|
| 8 | + |
| 9 | +## Current set of `TaskSeq` utility functions |
| 10 | + |
| 11 | +The following is the current surface area of the `TaskSeq` utility functions. This is just a dump of the signatures, proper |
| 12 | +documentation will be added soon(ish): |
| 13 | + |
| 14 | +```f# |
| 15 | +module TaskSeq = |
| 16 | + val toList: t: taskSeq<'T> -> 'T list |
| 17 | + val toArray: taskSeq: taskSeq<'T> -> 'T[] |
| 18 | + val empty<'T> : IAsyncEnumerable<'T> |
| 19 | + val ofArray: array: 'T[] -> IAsyncEnumerable<'T> |
| 20 | + val ofList: list: 'T list -> IAsyncEnumerable<'T> |
| 21 | + val ofSeq: sequence: seq<'T> -> IAsyncEnumerable<'T> |
| 22 | + val ofResizeArray: data: ResizeArray<'T> -> IAsyncEnumerable<'T> |
| 23 | + val ofTaskSeq: sequence: seq<#Task<'T>> -> IAsyncEnumerable<'T> |
| 24 | + val ofTaskList: list: #Task<'T> list -> IAsyncEnumerable<'T> |
| 25 | + val ofTaskArray: array: #Task<'T> array -> IAsyncEnumerable<'T> |
| 26 | + val ofAsyncSeq: sequence: seq<Async<'T>> -> IAsyncEnumerable<'T> |
| 27 | + val ofAsyncList: list: Async<'T> list -> IAsyncEnumerable<'T> |
| 28 | + val ofAsyncArray: array: Async<'T> array -> IAsyncEnumerable<'T> |
| 29 | + val toArrayAsync: taskSeq: taskSeq<'a> -> Task<'a[]> |
| 30 | + val toListAsync: taskSeq: taskSeq<'a> -> Task<'a list> |
| 31 | + val toResizeArrayAsync: taskSeq: taskSeq<'a> -> Task<ResizeArray<'a>> |
| 32 | + val toIListAsync: taskSeq: taskSeq<'a> -> Task<IList<'a>> |
| 33 | + val toSeqCachedAsync: taskSeq: taskSeq<'a> -> Task<seq<'a>> |
| 34 | + val iter: action: ('a -> unit) -> taskSeq: taskSeq<'a> -> Task<unit> |
| 35 | + val iteri: action: (int -> 'a -> unit) -> taskSeq: taskSeq<'a> -> Task<unit> |
| 36 | + val iterAsync: action: ('a -> #Task<unit>) -> taskSeq: taskSeq<'a> -> Task<unit> |
| 37 | + val iteriAsync: action: (int -> 'a -> #Task<unit>) -> taskSeq: taskSeq<'a> -> Task<unit> |
| 38 | + val map: mapper: ('T -> 'U) -> taskSeq: taskSeq<'T> -> IAsyncEnumerable<'U> |
| 39 | + val mapi: mapper: (int -> 'T -> 'U) -> taskSeq: taskSeq<'T> -> IAsyncEnumerable<'U> |
| 40 | + val mapAsync: mapper: ('a -> #Task<'c>) -> taskSeq: taskSeq<'a> -> IAsyncEnumerable<'c> |
| 41 | + val mapiAsync: mapper: (int -> 'a -> #Task<'c>) -> taskSeq: taskSeq<'a> -> IAsyncEnumerable<'c> |
| 42 | + val collect: binder: ('T -> #IAsyncEnumerable<'U>) -> taskSeq: taskSeq<'T> -> IAsyncEnumerable<'U> |
| 43 | + val collectSeq: binder: ('T -> #seq<'U>) -> taskSeq: taskSeq<'T> -> IAsyncEnumerable<'U> |
| 44 | + val collectAsync: binder: ('T -> #Task<'b>) -> taskSeq: taskSeq<'T> -> taskSeq<'U> when 'b :> IAsyncEnumerable<'U> |
| 45 | + val collectSeqAsync: binder: ('T -> #Task<'b>) -> taskSeq: taskSeq<'T> -> taskSeq<'U> when 'b :> seq<'U> |
| 46 | + val zip: taskSeq1: taskSeq<'a> -> taskSeq2: taskSeq<'b> -> IAsyncEnumerable<'a * 'b> |
| 47 | +``` |
0 commit comments