There is TcpListener::incoming
that turns a TcpListener
into an Iterator
of incoming TcpStream
s, but it has a lifetime. I cannot simply pass the iterator around and manipulate it, because it has 'a
lifetime bound to the TcpListener
. An alternative that takes over ownership would be appreciated.
1 Like
struct OwnedIncoming(TcpListener);
impl Iterator for OwnedIncoming {
type Item = io::Result<TcpStream>;
fn next(&mut self) -> Option<io::Result<TcpStream>> {
Some(self.listener.accept().map(|p| p.0))
}
}
How exactly are you "manipulating" the iterator?
Probably something like map, chain, filter, for_each
Yes. This is exactly what I'd like to have in stdlib. Can I simply PR it or what is the common process for such a minor change?
I opened Add TcpListener::into_incoming and IntoIncoming by piegamesde · Pull Request #88339 · rust-lang/rust · GitHub</, although it complains about missing feature gate and stuff.
Sorry, I linked the wrong section of the book:
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.