diff options
Diffstat (limited to 'library/std/src/os/mod.rs')
-rw-r--r-- | library/std/src/os/mod.rs | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/library/std/src/os/mod.rs b/library/std/src/os/mod.rs new file mode 100644 index 00000000000..fd6ee088e96 --- /dev/null +++ b/library/std/src/os/mod.rs @@ -0,0 +1,74 @@ +//! OS-specific functionality. + +#![stable(feature = "os", since = "1.0.0")] +#![allow(missing_docs, nonstandard_style, missing_debug_implementations)] + +cfg_if::cfg_if! { + if #[cfg(doc)] { + + // When documenting libstd we want to show unix/windows/linux modules as + // these are the "main modules" that are used across platforms. This + // should help show platform-specific functionality in a hopefully + // cross-platform way in the documentation + + #[stable(feature = "rust1", since = "1.0.0")] + pub use crate::sys::unix_ext as unix; + + #[stable(feature = "rust1", since = "1.0.0")] + pub use crate::sys::windows_ext as windows; + + #[doc(cfg(target_os = "linux"))] + pub mod linux; + } else { + + // If we're not documenting libstd then we just expose the main modules + // as we otherwise would. + + #[cfg(any(target_os = "redox", unix, target_os = "vxworks", target_os = "hermit"))] + #[stable(feature = "rust1", since = "1.0.0")] + pub use crate::sys::ext as unix; + + #[cfg(windows)] + #[stable(feature = "rust1", since = "1.0.0")] + pub use crate::sys::ext as windows; + + #[cfg(any(target_os = "linux", target_os = "l4re"))] + pub mod linux; + + } +} + +#[cfg(target_os = "android")] +pub mod android; +#[cfg(target_os = "dragonfly")] +pub mod dragonfly; +#[cfg(target_os = "emscripten")] +pub mod emscripten; +#[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 = "illumos")] +pub mod illumos; +#[cfg(target_os = "ios")] +pub mod ios; +#[cfg(target_os = "macos")] +pub mod macos; +#[cfg(target_os = "netbsd")] +pub mod netbsd; +#[cfg(target_os = "openbsd")] +pub mod openbsd; +#[cfg(target_os = "redox")] +pub mod redox; +#[cfg(target_os = "solaris")] +pub mod solaris; +#[cfg(target_os = "vxworks")] +pub mod vxworks; +#[cfg(target_os = "wasi")] +pub mod wasi; + +pub mod raw; |