//! Imports from `std` that would be polyfilled for `no_std` builds (see //! `src/polyfill/no_std`). //! //! This implementation is used when `std` is available and just imports the //! necessary items from `std`. For `no_std` builds, the file //! `src/polyfill/no_std` is used instead, which doesn't depend on the standard //! library. #[cfg(not(windows))] pub mod io { pub use std::io::{IoSlice, IoSliceMut}; } #[cfg(not(any(target_os = "redox", target_os = "wasi")))] #[cfg(feature = "net")] pub mod net { pub use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6}; } pub mod os { pub mod fd { // Change to use `std::os::fd` when MSRV becomes 1.66 or higher. #[cfg(unix)] pub use std::os::unix::io::{ AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd, }; #[cfg(target_os = "wasi")] pub use std::os::wasi::io::{ AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd, }; } #[cfg(windows)] pub mod windows { pub mod io { pub use std::os::windows::io::{ AsRawSocket, AsSocket, BorrowedSocket, FromRawSocket, IntoRawSocket, OwnedSocket, RawSocket, }; } } }