1 //! Imports from `std` that would be polyfilled for `no_std` builds (see 2 //! `src/polyfill/no_std`). 3 //! 4 //! This implementation is used when `std` is available and just imports the 5 //! necessary items from `std`. For `no_std` builds, the file 6 //! `src/polyfill/no_std` is used instead, which doesn't depend on the standard 7 //! library. 8 9 #[cfg(not(windows))] 10 pub mod io { 11 pub use std::io::{IoSlice, IoSliceMut}; 12 } 13 14 #[cfg(not(any(target_os = "redox", target_os = "wasi")))] 15 #[cfg(feature = "net")] 16 pub mod net { 17 pub use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6}; 18 } 19 20 pub mod os { 21 pub mod fd { 22 // Change to use `std::os::fd` when MSRV becomes 1.66 or higher. 23 24 #[cfg(unix)] 25 pub use std::os::unix::io::{ 26 AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd, 27 }; 28 #[cfg(target_os = "wasi")] 29 pub use std::os::wasi::io::{ 30 AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd, 31 }; 32 } 33 34 #[cfg(windows)] 35 pub mod windows { 36 pub mod io { 37 pub use std::os::windows::io::{ 38 AsRawSocket, AsSocket, BorrowedSocket, FromRawSocket, IntoRawSocket, OwnedSocket, 39 RawSocket, 40 }; 41 } 42 } 43 } 44