]> git.proxmox.com Git - rustc.git/blob - library/std/src/os/mod.rs
New upstream version 1.52.0~beta.3+dfsg1
[rustc.git] / library / std / src / os / mod.rs
1 //! OS-specific functionality.
2
3 #![stable(feature = "os", since = "1.0.0")]
4 #![allow(missing_docs, nonstandard_style, missing_debug_implementations)]
5
6 // When documenting libstd we want to show unix/windows/linux/wasi modules as these are the "main
7 // modules" that are used across platforms, so all modules are enabled when `cfg(doc)` is set.
8 // This should help show platform-specific functionality in a hopefully cross-platform way in the
9 // documentation.
10 // Note that we deliberately avoid `cfg_if!` here to work around a rust-analyzer bug that would make
11 // `std::os` submodules unusable: https://github.com/rust-analyzer/rust-analyzer/issues/6038
12
13 #[cfg(doc)]
14 #[stable(feature = "rust1", since = "1.0.0")]
15 pub use crate::sys::unix_ext as unix;
16
17 #[cfg(doc)]
18 #[stable(feature = "rust1", since = "1.0.0")]
19 pub use crate::sys::windows_ext as windows;
20
21 #[cfg(doc)]
22 #[doc(cfg(target_os = "linux"))]
23 pub mod linux;
24
25 #[cfg(doc)]
26 #[stable(feature = "wasi_ext_doc", since = "1.35.0")]
27 pub use crate::sys::wasi_ext as wasi;
28
29 // If we're not documenting libstd then we just expose the main modules as we otherwise would.
30
31 #[cfg(not(doc))]
32 #[cfg(any(unix, target_os = "hermit"))]
33 #[stable(feature = "rust1", since = "1.0.0")]
34 pub use crate::sys::ext as unix;
35
36 #[cfg(not(doc))]
37 #[cfg(windows)]
38 #[stable(feature = "rust1", since = "1.0.0")]
39 pub use crate::sys::ext as windows;
40
41 #[cfg(not(doc))]
42 #[cfg(any(target_os = "linux", target_os = "l4re"))]
43 pub mod linux;
44
45 #[cfg(not(doc))]
46 #[cfg(target_os = "wasi")]
47 pub mod wasi;
48
49 #[cfg(target_os = "android")]
50 pub mod android;
51 #[cfg(target_os = "dragonfly")]
52 pub mod dragonfly;
53 #[cfg(target_os = "emscripten")]
54 pub mod emscripten;
55 #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))]
56 pub mod fortanix_sgx;
57 #[cfg(target_os = "freebsd")]
58 pub mod freebsd;
59 #[cfg(target_os = "fuchsia")]
60 pub mod fuchsia;
61 #[cfg(target_os = "haiku")]
62 pub mod haiku;
63 #[cfg(target_os = "illumos")]
64 pub mod illumos;
65 #[cfg(target_os = "ios")]
66 pub mod ios;
67 #[cfg(target_os = "macos")]
68 pub mod macos;
69 #[cfg(target_os = "netbsd")]
70 pub mod netbsd;
71 #[cfg(target_os = "openbsd")]
72 pub mod openbsd;
73 #[cfg(target_os = "redox")]
74 pub mod redox;
75 #[cfg(target_os = "solaris")]
76 pub mod solaris;
77 #[cfg(target_os = "vxworks")]
78 pub mod vxworks;
79
80 pub mod raw;