| use async_stream::stream; | |
| use tokio::sync::mpsc::{self, UnboundedSender}; | |
| use tokio_stream::Stream; | |
| pub fn unbounded_channel_stream<T: Unpin>() -> (UnboundedSender<T>, impl Stream<Item = T>) { | |
| let (tx, mut rx) = mpsc::unbounded_channel(); | |
| let stream = stream! { | |
| while let Some(item) = rx.recv().await { | |
| yield item; | |
| } | |
| }; | |
| (tx, stream) | |
| } |