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.
This PR implements a
channel
helper function to create aSubscription
.The
channel
function signature looks like this:The helper creates an
mpsc
channel with the givensize
and provides theSender
end to the closuref
. The resultingFuture
will be run concurrently and theSubscription
will produce the messages published to theSender
.Notice how the
Future
produces aNever
type. This effectively means theFuture
can never finish by itself. It can only be terminated by theApplication
.This is a simpler version of
unfold
where the future can simply run indefinitely with aloop
while publishing to theSender
instead of continuously returning to produce messages.The
unfold
helper has also been changed to always produce aMessage
when returning, as opposed to allowingNone
to only change state. If state changes are necessary without producing output, thechannel
helper is recommended.Closes #1553.