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 froma
is used; - when
false
, value fromb
is 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