about summary refs log tree commit diff
path: root/library/std/src/os
diff options
context:
space:
mode:
authorChristiaan Dirkx <christiaan@dirkx.email>2021-03-04 14:14:44 +0100
committerChristiaan Dirkx <christiaan@dirkx.email>2021-05-03 16:56:20 +0200
commit7024bfffbdd1fb3dafa3f263f6d10fd2aed2ff2d (patch)
tree75237bc9e079811d21c3bde8c450ffbc251673e9 /library/std/src/os
parent0e2cd33db84a4787391989c69ed3ce70ce8c07ec (diff)
downloadrust-7024bfffbdd1fb3dafa3f263f6d10fd2aed2ff2d.tar.gz
rust-7024bfffbdd1fb3dafa3f263f6d10fd2aed2ff2d.zip
Move `std::sys::hermit::ext` to `std::os::hermit`
Diffstat (limited to 'library/std/src/os')
-rw-r--r--library/std/src/os/hermit/ffi.rs38
-rw-r--r--library/std/src/os/hermit/mod.rs13
-rw-r--r--library/std/src/os/mod.rs7
3 files changed, 57 insertions, 1 deletions
diff --git a/library/std/src/os/hermit/ffi.rs b/library/std/src/os/hermit/ffi.rs
new file mode 100644
index 00000000000..07b59a02556
--- /dev/null
+++ b/library/std/src/os/hermit/ffi.rs
@@ -0,0 +1,38 @@
+//! HermitCore-specific extension to the primitives in the `std::ffi` module
+//!
+//! # Examples
+//!
+//! ```
+//! use std::ffi::OsString;
+//! use std::os::hermit::ffi::OsStringExt;
+//!
+//! let bytes = b"foo".to_vec();
+//!
+//! // OsStringExt::from_vec
+//! let os_string = OsString::from_vec(bytes);
+//! assert_eq!(os_string.to_str(), Some("foo"));
+//!
+//! // OsStringExt::into_vec
+//! let bytes = os_string.into_vec();
+//! assert_eq!(bytes, b"foo");
+//! ```
+//!
+//! ```
+//! use std::ffi::OsStr;
+//! use std::os::hermit::ffi::OsStrExt;
+//!
+//! let bytes = b"foo";
+//!
+//! // OsStrExt::from_bytes
+//! let os_str = OsStr::from_bytes(bytes);
+//! assert_eq!(os_str.to_str(), Some("foo"));
+//!
+//! // OsStrExt::as_bytes
+//! let bytes = os_str.as_bytes();
+//! assert_eq!(bytes, b"foo");
+//! ```
+
+#![stable(feature = "rust1", since = "1.0.0")]
+
+#[stable(feature = "rust1", since = "1.0.0")]
+pub use crate::sys_common::os_str_bytes::*;
diff --git a/library/std/src/os/hermit/mod.rs b/library/std/src/os/hermit/mod.rs
new file mode 100644
index 00000000000..4657b545a1b
--- /dev/null
+++ b/library/std/src/os/hermit/mod.rs
@@ -0,0 +1,13 @@
+#![stable(feature = "rust1", since = "1.0.0")]
+
+pub mod ffi;
+
+/// A prelude for conveniently writing platform-specific code.
+///
+/// Includes all extension traits, and some important type definitions.
+#[stable(feature = "rust1", since = "1.0.0")]
+pub mod prelude {
+    #[doc(no_inline)]
+    #[stable(feature = "rust1", since = "1.0.0")]
+    pub use super::ffi::{OsStrExt, OsStringExt};
+}
diff --git a/library/std/src/os/mod.rs b/library/std/src/os/mod.rs
index 7e333e2b778..fc684f0912f 100644
--- a/library/std/src/os/mod.rs
+++ b/library/std/src/os/mod.rs
@@ -48,7 +48,12 @@ cfg_if::cfg_if! {
         #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))]
         pub mod fortanix_sgx;
 
-        #[cfg(any(unix, target_os = "hermit"))]
+        #[cfg(target_os = "hermit")]
+        mod hermit;
+        #[cfg(target_os = "hermit")]
+        pub use hermit as unix;
+
+        #[cfg(unix)]
         #[stable(feature = "rust1", since = "1.0.0")]
         pub use crate::sys::ext as unix;
         #[cfg(target_os = "android")]