stream-map-any
Allows merging async Streams of different output type.
It's very similar to Tokio's StreamMap
, except that it doesn't require the streams to have the
same output type.
This can be useful when you don't know what type of streams should be combined, acting as a
runtime dynamic select.
Not a zero-cost-abstraction
Since we don't know what types of outputs the streams will generate, the generated output will
be a StreamMapAnyVariant
, a newtype around Box<dyn Any>
. As a result, we rely on dynamic
dispatching to transform it back into the desired output.
Benching shows that it's 2x as slow as a StreamMap
or Tokio's select
macro.
Example
To get started, add the following to Cargo.toml
.
= "0.2"
Merging of 2 streams:
use channel;
use block_on;
use ;
use StreamMapAny;
Further info in the API Docs.