wick-packet 0.17.0

Packet, stream, and entity types for Wick, a WebAssembly application flow runtime
Documentation
1
2
3
4
5
6
7
8
9
use crate::{PacketStream, StreamMap};

#[must_use]
/// Turn a single [PacketStream] into multiple [PacketStream]s keyed by `ports`.
pub fn split_stream<T: IntoIterator<Item = String>>(stream: PacketStream, ports: T) -> Vec<PacketStream> {
  let mut streams = StreamMap::from_stream(stream, ports);
  let ports: Vec<_> = streams.keys().cloned().collect();
  ports.iter().map(|port| streams.take(port).unwrap()).collect()
}