Open
Description
Echo server example in TcpListener seems confusing to a new-comer.
while let Some(stream) = incoming.next().await {
let stream = stream?; -- Immutable binding
let (reader, writer) = &mut (&stream, &stream); -- This take mutable reference of immutable references
io::copy(reader, writer).await?; -- but io requires mutable access.
}
It's not clear how io::copy
can use reader and writer which are basically &mut &TcpStream