1 use async_stream::stream;
2 use futures_util::pin_mut;
3 use futures_util::stream::StreamExt;
4 use tokio::net::TcpListener;
5 
6 #[tokio::main]
main()7 async fn main() {
8     let mut listener = TcpListener::bind("127.0.0.1:0").await.unwrap();
9 
10     let incoming = stream! {
11         loop {
12             let (socket, _) = listener.accept().await.unwrap();
13             yield socket;
14         }
15     };
16     pin_mut!(incoming);
17 
18     while let Some(v) = incoming.next().await {
19         println!("handle = {:?}", v);
20     }
21 }
22