1 use crate::convert::TryFrom;
3 use crate::io::{self, IoSlice, IoSliceMut};
4 use crate::net::{Ipv4Addr, Ipv6Addr, Shutdown, SocketAddr};
5 use crate::sys::unsupported;
6 use crate::time::Duration;
8 pub struct TcpStream(!);
11 pub fn connect(_: io::Result<&SocketAddr>) -> io::Result<TcpStream> {
15 pub fn connect_timeout(_: &SocketAddr, _: Duration) -> io::Result<TcpStream> {
19 pub fn set_read_timeout(&self, _: Option<Duration>) -> io::Result<()> {
23 pub fn set_write_timeout(&self, _: Option<Duration>) -> io::Result<()> {
27 pub fn read_timeout(&self) -> io::Result<Option<Duration>> {
31 pub fn write_timeout(&self) -> io::Result<Option<Duration>> {
35 pub fn peek(&self, _: &mut [u8]) -> io::Result<usize> {
39 pub fn read(&self, _: &mut [u8]) -> io::Result<usize> {
43 pub fn read_vectored(&self, _: &mut [IoSliceMut<'_>]) -> io::Result<usize> {
47 pub fn is_read_vectored(&self) -> bool {
51 pub fn write(&self, _: &[u8]) -> io::Result<usize> {
55 pub fn write_vectored(&self, _: &[IoSlice<'_>]) -> io::Result<usize> {
59 pub fn is_write_vectored(&self) -> bool {
63 pub fn peer_addr(&self) -> io::Result<SocketAddr> {
67 pub fn socket_addr(&self) -> io::Result<SocketAddr> {
71 pub fn shutdown(&self, _: Shutdown) -> io::Result<()> {
75 pub fn duplicate(&self) -> io::Result<TcpStream> {
79 pub fn set_linger(&self, _: Option<Duration>) -> io::Result<()> {
83 pub fn linger(&self) -> io::Result<Option<Duration>> {
87 pub fn set_nodelay(&self, _: bool) -> io::Result<()> {
91 pub fn nodelay(&self) -> io::Result<bool> {
95 pub fn set_ttl(&self, _: u32) -> io::Result<()> {
99 pub fn ttl(&self) -> io::Result<u32> {
103 pub fn take_error(&self) -> io::Result<Option<io::Error>> {
107 pub fn set_nonblocking(&self, _: bool) -> io::Result<()> {
112 impl fmt::Debug for TcpStream {
113 fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
118 pub struct TcpListener(!);
121 pub fn bind(_: io::Result<&SocketAddr>) -> io::Result<TcpListener> {
125 pub fn socket_addr(&self) -> io::Result<SocketAddr> {
129 pub fn accept(&self) -> io::Result<(TcpStream, SocketAddr)> {
133 pub fn duplicate(&self) -> io::Result<TcpListener> {
137 pub fn set_ttl(&self, _: u32) -> io::Result<()> {
141 pub fn ttl(&self) -> io::Result<u32> {
145 pub fn set_only_v6(&self, _: bool) -> io::Result<()> {
149 pub fn only_v6(&self) -> io::Result<bool> {
153 pub fn take_error(&self) -> io::Result<Option<io::Error>> {
157 pub fn set_nonblocking(&self, _: bool) -> io::Result<()> {
162 impl fmt::Debug for TcpListener {
163 fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
168 pub struct UdpSocket(!);
171 pub fn bind(_: io::Result<&SocketAddr>) -> io::Result<UdpSocket> {
175 pub fn peer_addr(&self) -> io::Result<SocketAddr> {
179 pub fn socket_addr(&self) -> io::Result<SocketAddr> {
183 pub fn recv_from(&self, _: &mut [u8]) -> io::Result<(usize, SocketAddr)> {
187 pub fn peek_from(&self, _: &mut [u8]) -> io::Result<(usize, SocketAddr)> {
191 pub fn send_to(&self, _: &[u8], _: &SocketAddr) -> io::Result<usize> {
195 pub fn duplicate(&self) -> io::Result<UdpSocket> {
199 pub fn set_read_timeout(&self, _: Option<Duration>) -> io::Result<()> {
203 pub fn set_write_timeout(&self, _: Option<Duration>) -> io::Result<()> {
207 pub fn read_timeout(&self) -> io::Result<Option<Duration>> {
211 pub fn write_timeout(&self) -> io::Result<Option<Duration>> {
215 pub fn set_broadcast(&self, _: bool) -> io::Result<()> {
219 pub fn broadcast(&self) -> io::Result<bool> {
223 pub fn set_multicast_loop_v4(&self, _: bool) -> io::Result<()> {
227 pub fn multicast_loop_v4(&self) -> io::Result<bool> {
231 pub fn set_multicast_ttl_v4(&self, _: u32) -> io::Result<()> {
235 pub fn multicast_ttl_v4(&self) -> io::Result<u32> {
239 pub fn set_multicast_loop_v6(&self, _: bool) -> io::Result<()> {
243 pub fn multicast_loop_v6(&self) -> io::Result<bool> {
247 pub fn join_multicast_v4(&self, _: &Ipv4Addr, _: &Ipv4Addr) -> io::Result<()> {
251 pub fn join_multicast_v6(&self, _: &Ipv6Addr, _: u32) -> io::Result<()> {
255 pub fn leave_multicast_v4(&self, _: &Ipv4Addr, _: &Ipv4Addr) -> io::Result<()> {
259 pub fn leave_multicast_v6(&self, _: &Ipv6Addr, _: u32) -> io::Result<()> {
263 pub fn set_ttl(&self, _: u32) -> io::Result<()> {
267 pub fn ttl(&self) -> io::Result<u32> {
271 pub fn take_error(&self) -> io::Result<Option<io::Error>> {
275 pub fn set_nonblocking(&self, _: bool) -> io::Result<()> {
279 pub fn recv(&self, _: &mut [u8]) -> io::Result<usize> {
283 pub fn peek(&self, _: &mut [u8]) -> io::Result<usize> {
287 pub fn send(&self, _: &[u8]) -> io::Result<usize> {
291 pub fn connect(&self, _: io::Result<&SocketAddr>) -> io::Result<()> {
296 impl fmt::Debug for UdpSocket {
297 fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
302 pub struct LookupHost(!);
305 pub fn port(&self) -> u16 {
310 impl Iterator for LookupHost {
311 type Item = SocketAddr;
312 fn next(&mut self) -> Option<SocketAddr> {
317 impl TryFrom<&str> for LookupHost {
318 type Error = io::Error;
320 fn try_from(_v: &str) -> io::Result<LookupHost> {
325 impl<'a> TryFrom<(&'a str, u16)> for LookupHost {
326 type Error = io::Error;
328 fn try_from(_v: (&'a str, u16)) -> io::Result<LookupHost> {
333 #[allow(nonstandard_style)]
335 pub const AF_INET: u8 = 0;
336 pub const AF_INET6: u8 = 1;
337 pub type sa_family_t = u8;
339 #[derive(Copy, Clone)]
344 #[derive(Copy, Clone)]
345 pub struct sockaddr_in {
346 pub sin_family: sa_family_t,
348 pub sin_addr: in_addr,
351 #[derive(Copy, Clone)]
352 pub struct in6_addr {
353 pub s6_addr: [u8; 16],
356 #[derive(Copy, Clone)]
357 pub struct sockaddr_in6 {
358 pub sin6_family: sa_family_t,
360 pub sin6_addr: in6_addr,
361 pub sin6_flowinfo: u32,
362 pub sin6_scope_id: u32,
365 #[derive(Copy, Clone)]
366 pub struct sockaddr {}
368 pub type socklen_t = usize;