summaryrefslogtreecommitdiffstats
path: root/third_party/rust/tokio-0.1.22/src/net.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/tokio-0.1.22/src/net.rs')
-rw-r--r--third_party/rust/tokio-0.1.22/src/net.rs98
1 files changed, 98 insertions, 0 deletions
diff --git a/third_party/rust/tokio-0.1.22/src/net.rs b/third_party/rust/tokio-0.1.22/src/net.rs
new file mode 100644
index 0000000000..a6b425da69
--- /dev/null
+++ b/third_party/rust/tokio-0.1.22/src/net.rs
@@ -0,0 +1,98 @@
+//! TCP/UDP/Unix bindings for `tokio`.
+//!
+//! This module contains the TCP/UDP/Unix networking types, similar to the standard
+//! library, which can be used to implement networking protocols.
+//!
+//! # Organization
+//!
+//! * [`TcpListener`] and [`TcpStream`] provide functionality for communication over TCP
+//! * [`UdpSocket`] and [`UdpFramed`] provide functionality for communication over UDP
+//! * [`UnixListener`] and [`UnixStream`] provide functionality for communication over a
+//! Unix Domain Stream Socket **(available on Unix only)**
+//! * [`UnixDatagram`] and [`UnixDatagramFramed`] provide functionality for communication
+//! over Unix Domain Datagram Socket **(available on Unix only)**
+
+//!
+//! [`TcpListener`]: struct.TcpListener.html
+//! [`TcpStream`]: struct.TcpStream.html
+//! [`UdpSocket`]: struct.UdpSocket.html
+//! [`UdpFramed`]: struct.UdpFramed.html
+//! [`UnixListener`]: struct.UnixListener.html
+//! [`UnixStream`]: struct.UnixStream.html
+//! [`UnixDatagram`]: struct.UnixDatagram.html
+//! [`UnixDatagramFramed`]: struct.UnixDatagramFramed.html
+
+#[cfg(feature = "tcp")]
+pub mod tcp {
+ //! TCP bindings for `tokio`.
+ //!
+ //! Connecting to an address, via TCP, can be done using [`TcpStream`]'s
+ //! [`connect`] method, which returns [`ConnectFuture`]. `ConnectFuture`
+ //! implements a future which returns a `TcpStream`.
+ //!
+ //! To listen on an address [`TcpListener`] can be used. `TcpListener`'s
+ //! [`incoming`][incoming_method] method can be used to accept new connections.
+ //! It return the [`Incoming`] struct, which implements a stream which returns
+ //! `TcpStream`s.
+ //!
+ //! [`TcpStream`]: struct.TcpStream.html
+ //! [`connect`]: struct.TcpStream.html#method.connect
+ //! [`ConnectFuture`]: struct.ConnectFuture.html
+ //! [`TcpListener`]: struct.TcpListener.html
+ //! [incoming_method]: struct.TcpListener.html#method.incoming
+ //! [`Incoming`]: struct.Incoming.html
+ pub use tokio_tcp::{ConnectFuture, Incoming, TcpListener, TcpStream};
+}
+#[cfg(feature = "tcp")]
+pub use self::tcp::{TcpListener, TcpStream};
+
+#[cfg(feature = "tcp")]
+#[deprecated(note = "use `tokio::net::tcp::ConnectFuture` instead")]
+#[doc(hidden)]
+pub type ConnectFuture = self::tcp::ConnectFuture;
+#[cfg(feature = "tcp")]
+#[deprecated(note = "use `tokio::net::tcp::Incoming` instead")]
+#[doc(hidden)]
+pub type Incoming = self::tcp::Incoming;
+
+#[cfg(feature = "udp")]
+pub mod udp {
+ //! UDP bindings for `tokio`.
+ //!
+ //! The main struct for UDP is the [`UdpSocket`], which represents a UDP socket.
+ //! Reading and writing to it can be done using futures, which return the
+ //! [`RecvDgram`] and [`SendDgram`] structs respectively.
+ //!
+ //! For convenience it's also possible to convert raw datagrams into higher-level
+ //! frames.
+ //!
+ //! [`UdpSocket`]: struct.UdpSocket.html
+ //! [`RecvDgram`]: struct.RecvDgram.html
+ //! [`SendDgram`]: struct.SendDgram.html
+ //! [`UdpFramed`]: struct.UdpFramed.html
+ //! [`framed`]: struct.UdpSocket.html#method.framed
+ pub use tokio_udp::{RecvDgram, SendDgram, UdpFramed, UdpSocket};
+}
+#[cfg(feature = "udp")]
+pub use self::udp::{UdpFramed, UdpSocket};
+
+#[cfg(feature = "udp")]
+#[deprecated(note = "use `tokio::net::udp::RecvDgram` instead")]
+#[doc(hidden)]
+pub type RecvDgram<T> = self::udp::RecvDgram<T>;
+#[cfg(feature = "udp")]
+#[deprecated(note = "use `tokio::net::udp::SendDgram` instead")]
+#[doc(hidden)]
+pub type SendDgram<T> = self::udp::SendDgram<T>;
+
+#[cfg(all(unix, feature = "uds"))]
+pub mod unix {
+ //! Unix domain socket bindings for `tokio` (only available on unix systems).
+
+ pub use tokio_uds::{
+ ConnectFuture, Incoming, RecvDgram, SendDgram, UCred, UnixDatagram, UnixDatagramFramed,
+ UnixListener, UnixStream,
+ };
+}
+#[cfg(all(unix, feature = "uds"))]
+pub use self::unix::{UnixDatagram, UnixDatagramFramed, UnixListener, UnixStream};