// Here we convert the `TcpListener` to a stream of incoming connections // with the `incoming` method. letserver = { asyncmove { letmut incoming = listener.incoming(); whileletSome(conn) = incoming.next().await { match conn { Err(e) => eprintln!("accept failed = {:?}", e), Ok(mut sock) => { // Spawn the future that echos the data and returns how // many bytes were copied as a concurrent task. tokio::spawn(asyncmove { // Split up the reading and writing parts of the // socket. let (mut reader, mut writer) = sock.split();