diff options
Diffstat (limited to '')
-rw-r--r-- | third_party/rust/tokio-uds/src/incoming.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/third_party/rust/tokio-uds/src/incoming.rs b/third_party/rust/tokio-uds/src/incoming.rs new file mode 100644 index 0000000000..28d4d76837 --- /dev/null +++ b/third_party/rust/tokio-uds/src/incoming.rs @@ -0,0 +1,27 @@ +use {UnixListener, UnixStream}; + +use futures::{Stream, Poll}; + +use std::io; + +/// Stream of listeners +#[derive(Debug)] +pub struct Incoming { + inner: UnixListener, +} + +impl Incoming { + pub(crate) fn new(listener: UnixListener) -> Incoming { + Incoming { inner: listener } + } +} + +impl Stream for Incoming { + type Item = UnixStream; + type Error = io::Error; + + fn poll(&mut self) -> Poll<Option<Self::Item>, io::Error> { + Ok(Some(try_ready!(self.inner.poll_accept()).0).into()) + } +} + |