|  | //! OS-specific functionality. | 
|  |  | 
|  | #![stable(feature = "os", since = "1.0.0")] | 
|  | #![allow(missing_docs, nonstandard_style, missing_debug_implementations)] | 
|  | #![allow(unsafe_op_in_unsafe_fn)] | 
|  |  | 
|  | pub mod raw; | 
|  |  | 
|  | // The code below could be written clearer using `cfg_if!`. However, the items below are | 
|  | // publicly exported by `std` and external tools can have trouble analysing them because of the use | 
|  | // of a macro that is not vendored by Rust and included in the toolchain. | 
|  | // See https://github.com/rust-analyzer/rust-analyzer/issues/6038. | 
|  |  | 
|  | // On certain platforms right now the "main modules" modules that are | 
|  | // documented don't compile (missing things in `libc` which is empty), | 
|  | // so just omit them with an empty module and add the "unstable" attribute. | 
|  |  | 
|  | // darwin, unix, linux, wasi and windows are handled a bit differently. | 
|  | #[cfg(all( | 
|  | doc, | 
|  | any( | 
|  | all(target_arch = "wasm32", not(target_os = "wasi")), | 
|  | all(target_vendor = "fortanix", target_env = "sgx") | 
|  | ) | 
|  | ))] | 
|  | #[unstable(issue = "none", feature = "std_internals")] | 
|  | pub mod darwin {} | 
|  | #[cfg(all( | 
|  | doc, | 
|  | any( | 
|  | all(target_arch = "wasm32", not(target_os = "wasi")), | 
|  | all(target_vendor = "fortanix", target_env = "sgx") | 
|  | ) | 
|  | ))] | 
|  | #[unstable(issue = "none", feature = "std_internals")] | 
|  | pub mod unix {} | 
|  | #[cfg(all( | 
|  | doc, | 
|  | any( | 
|  | all(target_arch = "wasm32", not(target_os = "wasi")), | 
|  | all(target_vendor = "fortanix", target_env = "sgx") | 
|  | ) | 
|  | ))] | 
|  | #[unstable(issue = "none", feature = "std_internals")] | 
|  | pub mod linux {} | 
|  | #[cfg(all( | 
|  | doc, | 
|  | any( | 
|  | all(target_arch = "wasm32", not(target_os = "wasi")), | 
|  | all(target_vendor = "fortanix", target_env = "sgx") | 
|  | ) | 
|  | ))] | 
|  | #[unstable(issue = "none", feature = "std_internals")] | 
|  | pub mod wasi {} | 
|  | #[cfg(all( | 
|  | doc, | 
|  | any( | 
|  | all(target_arch = "wasm32", not(target_os = "wasi")), | 
|  | all(target_vendor = "fortanix", target_env = "sgx") | 
|  | ) | 
|  | ))] | 
|  | #[unstable(issue = "none", feature = "std_internals")] | 
|  | pub mod windows {} | 
|  |  | 
|  | // darwin | 
|  | #[cfg(not(all( | 
|  | doc, | 
|  | any( | 
|  | all(target_arch = "wasm32", not(target_os = "wasi")), | 
|  | all(target_vendor = "fortanix", target_env = "sgx") | 
|  | ) | 
|  | )))] | 
|  | #[cfg(any(target_vendor = "apple", doc))] | 
|  | pub mod darwin; | 
|  |  | 
|  | // unix | 
|  | #[cfg(not(all( | 
|  | doc, | 
|  | any( | 
|  | all(target_arch = "wasm32", not(target_os = "wasi")), | 
|  | all(target_vendor = "fortanix", target_env = "sgx") | 
|  | ) | 
|  | )))] | 
|  | #[cfg(all(not(target_os = "hermit"), any(unix, doc)))] | 
|  | pub mod unix; | 
|  |  | 
|  | // linux | 
|  | #[cfg(not(all( | 
|  | doc, | 
|  | any( | 
|  | all(target_arch = "wasm32", not(target_os = "wasi")), | 
|  | all(target_vendor = "fortanix", target_env = "sgx") | 
|  | ) | 
|  | )))] | 
|  | #[cfg(any(target_os = "linux", doc))] | 
|  | pub mod linux; | 
|  |  | 
|  | // wasi | 
|  | #[cfg(not(all( | 
|  | doc, | 
|  | any( | 
|  | all(target_arch = "wasm32", not(target_os = "wasi")), | 
|  | all(target_vendor = "fortanix", target_env = "sgx") | 
|  | ) | 
|  | )))] | 
|  | #[cfg(any(target_os = "wasi", any(target_env = "p1", target_env = "p2"), doc))] | 
|  | pub mod wasi; | 
|  |  | 
|  | #[cfg(any(all(target_os = "wasi", target_env = "p2"), doc))] | 
|  | pub mod wasip2; | 
|  |  | 
|  | // windows | 
|  | #[cfg(not(all( | 
|  | doc, | 
|  | any( | 
|  | all(target_arch = "wasm32", not(target_os = "wasi")), | 
|  | all(target_vendor = "fortanix", target_env = "sgx") | 
|  | ) | 
|  | )))] | 
|  | #[cfg(any(windows, doc))] | 
|  | pub mod windows; | 
|  |  | 
|  | // Others. | 
|  | #[cfg(target_os = "aix")] | 
|  | pub mod aix; | 
|  | #[cfg(target_os = "android")] | 
|  | pub mod android; | 
|  | #[cfg(target_os = "cygwin")] | 
|  | pub mod cygwin; | 
|  | #[cfg(target_os = "dragonfly")] | 
|  | pub mod dragonfly; | 
|  | #[cfg(target_os = "emscripten")] | 
|  | pub mod emscripten; | 
|  | #[cfg(target_os = "espidf")] | 
|  | pub mod espidf; | 
|  | #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))] | 
|  | pub mod fortanix_sgx; | 
|  | #[cfg(target_os = "freebsd")] | 
|  | pub mod freebsd; | 
|  | #[cfg(target_os = "fuchsia")] | 
|  | pub mod fuchsia; | 
|  | #[cfg(target_os = "haiku")] | 
|  | pub mod haiku; | 
|  | #[cfg(target_os = "hermit")] | 
|  | pub mod hermit; | 
|  | #[cfg(target_os = "horizon")] | 
|  | pub mod horizon; | 
|  | #[cfg(target_os = "hurd")] | 
|  | pub mod hurd; | 
|  | #[cfg(target_os = "illumos")] | 
|  | pub mod illumos; | 
|  | #[cfg(target_os = "ios")] | 
|  | pub mod ios; | 
|  | #[cfg(target_os = "l4re")] | 
|  | pub mod l4re; | 
|  | #[cfg(target_os = "macos")] | 
|  | pub mod macos; | 
|  | #[cfg(target_os = "motor")] | 
|  | pub mod motor; | 
|  | #[cfg(target_os = "netbsd")] | 
|  | pub mod netbsd; | 
|  | #[cfg(target_os = "nto")] | 
|  | pub mod nto; | 
|  | #[cfg(target_os = "nuttx")] | 
|  | pub mod nuttx; | 
|  | #[cfg(target_os = "openbsd")] | 
|  | pub mod openbsd; | 
|  | #[cfg(target_os = "redox")] | 
|  | pub mod redox; | 
|  | #[cfg(target_os = "rtems")] | 
|  | pub mod rtems; | 
|  | #[cfg(target_os = "solaris")] | 
|  | pub mod solaris; | 
|  | #[cfg(target_os = "solid_asp3")] | 
|  | pub mod solid; | 
|  | #[cfg(target_os = "trusty")] | 
|  | pub mod trusty; | 
|  | #[cfg(target_os = "uefi")] | 
|  | pub mod uefi; | 
|  | #[cfg(target_os = "vita")] | 
|  | pub mod vita; | 
|  | #[cfg(target_os = "vxworks")] | 
|  | pub mod vxworks; | 
|  | #[cfg(target_os = "xous")] | 
|  | pub mod xous; | 
|  |  | 
|  | #[cfg(any( | 
|  | unix, | 
|  | target_os = "hermit", | 
|  | target_os = "trusty", | 
|  | target_os = "wasi", | 
|  | target_os = "motor", | 
|  | doc | 
|  | ))] | 
|  | pub mod fd; | 
|  |  | 
|  | #[cfg(any(target_os = "linux", target_os = "android", target_os = "cygwin", doc))] | 
|  | mod net; |