Merge the zip2 and zip3 implementations #221
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
We recently merged #201 which removed the
Sendable
constraint of theAsyncIterator
fromzip
. There were some left over comments that we wanted to fix in a follow up. Furthermore, we also can merge the implementations ofzip2
andzip3
relatively easily. The merging also aids us in understanding what we need from the variadic generics proposals and allows us to give feedback sincezip
is non-trivial to implement with variadic generics. Lastly, the merged state machine will be a good base for the overhaul ofcombineLatest
.Modification
This PR merges the state machines from
zip2
andzip3
into a single one. Furthermore, it addresses some of the open feedback from the last PR.Result
We now have a single state machine which is a good foundation for our changes to
combineLatest
.