1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
//! 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,
};
}
}
}