about summary refs log tree commit diff
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2017-08-05 14:39:46 +0800
committerkennytm <kennytm@gmail.com>2017-08-10 13:43:59 +0800
commitb4114ebe3a19d7d9bdacf700cc67bd2709eafe5b (patch)
treeea541608ac8b9307c5860d6dc78afd63a7c47194
parenta2b888675accccedec7601cc3bd67ca028b4757c (diff)
downloadrust-b4114ebe3a19d7d9bdacf700cc67bd2709eafe5b.tar.gz
rust-b4114ebe3a19d7d9bdacf700cc67bd2709eafe5b.zip
Exposed all platform-specific documentation.
-rw-r--r--src/libstd/lib.rs1
-rw-r--r--src/libstd/os/mod.rs42
-rw-r--r--src/libstd/sys/mod.rs30
-rw-r--r--src/libstd/sys/redox/ext/mod.rs1
-rw-r--r--src/libstd/sys/unix/ext/mod.rs1
-rw-r--r--src/libstd/sys/unix/mod.rs29
-rw-r--r--src/libstd/sys/windows/ext/mod.rs1
7 files changed, 75 insertions, 30 deletions
diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs
index bd9c9c74784..cc24b7937c0 100644
--- a/src/libstd/lib.rs
+++ b/src/libstd/lib.rs
@@ -314,6 +314,7 @@
 #![feature(untagged_unions)]
 #![feature(unwind_attributes)]
 #![feature(vec_push_all)]
+#![feature(doc_cfg)]
 #![cfg_attr(test, feature(update_panic_count))]
 
 #![default_lib_allocator]
diff --git a/src/libstd/os/mod.rs b/src/libstd/os/mod.rs
index e45af867055..72eed549f62 100644
--- a/src/libstd/os/mod.rs
+++ b/src/libstd/os/mod.rs
@@ -13,26 +13,36 @@
 #![stable(feature = "os", since = "1.0.0")]
 #![allow(missing_docs, bad_style, missing_debug_implementations)]
 
-#[cfg(any(target_os = "redox", unix))]
+#[cfg(all(not(dox), any(target_os = "redox", unix)))]
 #[stable(feature = "rust1", since = "1.0.0")]
 pub use sys::ext as unix;
-#[cfg(windows)]
+#[cfg(all(not(dox), windows))]
 #[stable(feature = "rust1", since = "1.0.0")]
 pub use sys::ext as windows;
 
-#[cfg(target_os = "android")]   pub mod android;
-#[cfg(target_os = "bitrig")]    pub mod bitrig;
-#[cfg(target_os = "dragonfly")] pub mod dragonfly;
-#[cfg(target_os = "freebsd")]   pub mod freebsd;
-#[cfg(target_os = "haiku")]     pub mod haiku;
-#[cfg(target_os = "ios")]       pub mod ios;
-#[cfg(target_os = "linux")]     pub mod linux;
-#[cfg(target_os = "macos")]     pub mod macos;
-#[cfg(target_os = "nacl")]      pub mod nacl;
-#[cfg(target_os = "netbsd")]   pub mod netbsd;
-#[cfg(target_os = "openbsd")]   pub mod openbsd;
-#[cfg(target_os = "solaris")]   pub mod solaris;
-#[cfg(target_os = "emscripten")] pub mod emscripten;
-#[cfg(target_os = "fuchsia")]    pub mod fuchsia;
+#[cfg(dox)]
+#[stable(feature = "rust1", since = "1.0.0")]
+pub use sys::unix_ext as unix;
+#[cfg(dox)]
+#[stable(feature = "rust1", since = "1.0.0")]
+pub use sys::windows_ext as windows;
+
+#[cfg(any(dox, target_os = "linux"))]
+#[doc(cfg(target_os = "linux"))]
+pub mod linux;
+
+#[cfg(all(not(dox), target_os = "android"))]    pub mod android;
+#[cfg(all(not(dox), target_os = "bitrig"))]     pub mod bitrig;
+#[cfg(all(not(dox), target_os = "dragonfly"))]  pub mod dragonfly;
+#[cfg(all(not(dox), target_os = "freebsd"))]    pub mod freebsd;
+#[cfg(all(not(dox), target_os = "haiku"))]      pub mod haiku;
+#[cfg(all(not(dox), target_os = "ios"))]        pub mod ios;
+#[cfg(all(not(dox), target_os = "macos"))]      pub mod macos;
+#[cfg(all(not(dox), target_os = "nacl"))]       pub mod nacl;
+#[cfg(all(not(dox), target_os = "netbsd"))]     pub mod netbsd;
+#[cfg(all(not(dox), target_os = "openbsd"))]    pub mod openbsd;
+#[cfg(all(not(dox), target_os = "solaris"))]    pub mod solaris;
+#[cfg(all(not(dox), target_os = "emscripten"))] pub mod emscripten;
+#[cfg(all(not(dox), target_os = "fuchsia"))]    pub mod fuchsia;
 
 pub mod raw;
diff --git a/src/libstd/sys/mod.rs b/src/libstd/sys/mod.rs
index ef4dc365dbe..d91c2073a23 100644
--- a/src/libstd/sys/mod.rs
+++ b/src/libstd/sys/mod.rs
@@ -45,3 +45,33 @@ mod imp;
 #[cfg(target_os = "redox")]
 #[path = "redox/mod.rs"]
 mod imp;
+
+
+// Import essential modules from both platforms when documenting.
+
+#[cfg(all(dox, not(unix)))]
+use os::linux as platform;
+
+#[cfg(all(dox, not(any(unix, target_os = "redox"))))]
+#[path = "unix/ext/mod.rs"]
+pub mod unix_ext;
+
+#[cfg(all(dox, any(unix, target_os = "redox")))]
+pub use self::ext as unix_ext;
+
+
+#[cfg(all(dox, not(windows)))]
+#[macro_use]
+#[path = "windows/compat.rs"]
+mod compat;
+
+#[cfg(all(dox, not(windows)))]
+#[path = "windows/c.rs"]
+mod c;
+
+#[cfg(all(dox, not(windows)))]
+#[path = "windows/ext/mod.rs"]
+pub mod windows_ext;
+
+#[cfg(all(dox, windows))]
+pub use self::ext as windows_ext;
diff --git a/src/libstd/sys/redox/ext/mod.rs b/src/libstd/sys/redox/ext/mod.rs
index 0c1bf9e9557..259cda5bcb3 100644
--- a/src/libstd/sys/redox/ext/mod.rs
+++ b/src/libstd/sys/redox/ext/mod.rs
@@ -28,6 +28,7 @@
 //! ```
 
 #![stable(feature = "rust1", since = "1.0.0")]
+#![doc(cfg(target_os = "redox"))]
 
 pub mod ffi;
 pub mod fs;
diff --git a/src/libstd/sys/unix/ext/mod.rs b/src/libstd/sys/unix/ext/mod.rs
index 1be9f11b92c..67fe46cc9c7 100644
--- a/src/libstd/sys/unix/ext/mod.rs
+++ b/src/libstd/sys/unix/ext/mod.rs
@@ -28,6 +28,7 @@
 //! ```
 
 #![stable(feature = "rust1", since = "1.0.0")]
+#![doc(cfg(unix))]
 
 pub mod io;
 pub mod ffi;
diff --git a/src/libstd/sys/unix/mod.rs b/src/libstd/sys/unix/mod.rs
index 46e5acdf3d2..4393aedf162 100644
--- a/src/libstd/sys/unix/mod.rs
+++ b/src/libstd/sys/unix/mod.rs
@@ -13,20 +13,21 @@
 use io::{self, ErrorKind};
 use libc;
 
-#[cfg(target_os = "android")]   pub use os::android as platform;
-#[cfg(target_os = "bitrig")]    pub use os::bitrig as platform;
-#[cfg(target_os = "dragonfly")] pub use os::dragonfly as platform;
-#[cfg(target_os = "freebsd")]   pub use os::freebsd as platform;
-#[cfg(target_os = "haiku")]     pub use os::haiku as platform;
-#[cfg(target_os = "ios")]       pub use os::ios as platform;
-#[cfg(target_os = "linux")]     pub use os::linux as platform;
-#[cfg(target_os = "macos")]     pub use os::macos as platform;
-#[cfg(target_os = "nacl")]      pub use os::nacl as platform;
-#[cfg(target_os = "netbsd")]    pub use os::netbsd as platform;
-#[cfg(target_os = "openbsd")]   pub use os::openbsd as platform;
-#[cfg(target_os = "solaris")]   pub use os::solaris as platform;
-#[cfg(target_os = "emscripten")] pub use os::emscripten as platform;
-#[cfg(target_os = "fuchsia")]   pub use os::fuchsia as platform;
+#[cfg(any(dox, target_os = "linux"))] pub use os::linux as platform;
+
+#[cfg(all(not(dox), target_os = "android"))]   pub use os::android as platform;
+#[cfg(all(not(dox), target_os = "bitrig"))]    pub use os::bitrig as platform;
+#[cfg(all(not(dox), target_os = "dragonfly"))] pub use os::dragonfly as platform;
+#[cfg(all(not(dox), target_os = "freebsd"))]   pub use os::freebsd as platform;
+#[cfg(all(not(dox), target_os = "haiku"))]     pub use os::haiku as platform;
+#[cfg(all(not(dox), target_os = "ios"))]       pub use os::ios as platform;
+#[cfg(all(not(dox), target_os = "macos"))]     pub use os::macos as platform;
+#[cfg(all(not(dox), target_os = "nacl"))]      pub use os::nacl as platform;
+#[cfg(all(not(dox), target_os = "netbsd"))]    pub use os::netbsd as platform;
+#[cfg(all(not(dox), target_os = "openbsd"))]   pub use os::openbsd as platform;
+#[cfg(all(not(dox), target_os = "solaris"))]   pub use os::solaris as platform;
+#[cfg(all(not(dox), target_os = "emscripten"))] pub use os::emscripten as platform;
+#[cfg(all(not(dox), target_os = "fuchsia"))]   pub use os::fuchsia as platform;
 
 #[macro_use]
 pub mod weak;
diff --git a/src/libstd/sys/windows/ext/mod.rs b/src/libstd/sys/windows/ext/mod.rs
index 11b1337a8ae..4b458d293bc 100644
--- a/src/libstd/sys/windows/ext/mod.rs
+++ b/src/libstd/sys/windows/ext/mod.rs
@@ -17,6 +17,7 @@
 //! platform-agnostic idioms would not normally support.
 
 #![stable(feature = "rust1", since = "1.0.0")]
+#![doc(cfg(windows))]
 
 pub mod ffi;
 pub mod fs;