Treatment arrange
std/flow::arrange
Generics
◻ T (any)
Inputs
⇥ a: Stream<T>
⇥ b: Stream<T>
⇥ select: Stream<bool>
Outputs
↦ value: Stream<T>
Arrange two streams as one.
The two streams are merged using the select stream:
- when
true, value fromais used; - when
false, value frombis used.
ℹ️ No value from either a or b are discarded, they are used when select give turn.
⚠️ When select ends merge terminates without treating the remaining values from a and b.
When select give turn to a or b while the concerned stream is ended, the merge terminates.
Merge continues as long as select and concerned stream does, while the other can be ended.
graph LR
T("arrange()")
A["… 🟦 🟫 …"] -->|a| T
B["… 🟧 🟪 🟨 …"] -->|b| T
O["… 🟩 🟥 🟥 🟩 🟥 …"] -->|select|T
T -->|value| V["… 🟦 🟧 🟪 🟫 🟨 …"]
style V fill:#ffff,stroke:#ffff
style O fill:#ffff,stroke:#ffff
style A fill:#ffff,stroke:#ffff
style B fill:#ffff,stroke:#ffff