=str #16965 use akka-actor provided tuples for gen UnzipWith

This commit is contained in:
Konrad Malawski 2015-07-15 10:55:47 +02:00
parent 50de39e886
commit 911e02bd40
4 changed files with 18 additions and 38 deletions

View file

@ -27,20 +27,20 @@ Akka Streams currently provide these junctions (for a detailed list see :ref:`st
* **Fan-out**
- ``Broadcast[T]`` *(1 input, N outputs)* given an input element emits to each output
- ``Balance[T]`` *(1 input, N outputs)* given an input element emits to one of its output ports
- ``UnzipWith[In,A,B,...]`` *(1 input, N outputs)* takes a function of 1 input that given a value for each input emits N output elements (where N <= 20)
- ``UnZip[A,B]`` *(1 input, 2 outputs)* splits a stream of ``(A,B)`` tuples into two streams, one of type ``A`` and one of type ``B``
- ``FlexiRoute[In]`` *(1 input, N outputs)* enables writing custom fan out elements using a simple DSL
- ``Broadcast<T>`` *(1 input, N outputs)* given an input element emits to each output
- ``Balance<T>`` *(1 input, N outputs)* given an input element emits to one of its output ports
- ``UnzipWith<In,A,B,...>`` *(1 input, N outputs)* takes a function of 1 input that given a value for each input emits N output elements (where N <= 20)
- ``UnZip<A,B>`` *(1 input, 2 outputs)* splits a stream of ``Pair<A,B>`` tuples into two streams, one of type ``A`` and one of type ``B``
- ``FlexiRoute<In>`` *(1 input, N outputs)* enables writing custom fan out elements using a simple DSL
* **Fan-in**
- ``Merge[In]`` *(N inputs , 1 output)* picks randomly from inputs pushing them one by one to its output
- ``MergePreferred[In]`` like :class:`Merge` but if elements are available on ``preferred`` port, it picks from it, otherwise randomly from ``others``
- ``ZipWith[A,B,...,Out]`` *(N inputs, 1 output)* which takes a function of N inputs that given a value for each input emits 1 output element
- ``Zip[A,B]`` *(2 inputs, 1 output)* is a :class:`ZipWith` specialised to zipping input streams of ``A`` and ``B`` into an ``(A,B)`` tuple stream
- ``Concat[A]`` *(2 inputs, 1 output)* concatenates two streams (first consume one, then the second one)
- ``FlexiMerge[Out]`` *(N inputs, 1 output)* enables writing custom fan-in elements using a simple DSL
- ``Merge<In>`` *(N inputs , 1 output)* picks randomly from inputs pushing them one by one to its output
- ``MergePreferred<In>`` like :class:`Merge` but if elements are available on ``preferred`` port, it picks from it, otherwise randomly from ``others``
- ``ZipWith<A,B,...,Out>`` *(N inputs, 1 output)* which takes a function of N inputs that given a value for each input emits 1 output element
- ``Zip<A,B>`` *(2 inputs, 1 output)* is a :class:`ZipWith` specialised to zipping input streams of ``A`` and ``B`` into a ``Pair(A,B)`` tuple stream
- ``Concat<A>`` *(2 inputs, 1 output)* concatenates two streams (first consume one, then the second one)
- ``FlexiMerge<Out>`` *(N inputs, 1 output)* enables writing custom fan-in elements using a simple DSL
One of the goals of the FlowGraph DSL is to look similar to how one would draw a graph on a whiteboard, so that it is
simple to translate a design from whiteboard to code and be able to relate those two. Let's illustrate this by translating