| use async_stream::stream; | |
| use futures_util::pin_mut; | |
| use futures_util::stream::StreamExt; | |
| use tokio::net::TcpListener; | |
| #[tokio::main] | |
| async fn main() { | |
| let listener = TcpListener::bind("127.0.0.1:0").await.unwrap(); | |
| let incoming = stream! { | |
| loop { | |
| let (socket, _) = listener.accept().await.unwrap(); | |
| yield socket; | |
| } | |
| }; | |
| pin_mut!(incoming); | |
| while let Some(v) = incoming.next().await { | |
| println!("handle = {:?}", v); | |
| } | |
| } |