about summary refs log tree commit diff
path: root/library/std/src/sys/unix/os_str.rs
diff options
context:
space:
mode:
authorEd Page <eopage@gmail.com>2023-07-07 09:46:48 -0500
committerEd Page <eopage@gmail.com>2023-07-07 09:46:48 -0500
commitee604fccd9d91b8f4cf9b4cad5bafdf698dd0335 (patch)
treec509daf7e13637b5099c5b4f3cfde2ca2d979c1f /library/std/src/sys/unix/os_str.rs
parent85bf07972a1041b9e25393b803d0e006bec3eaaf (diff)
downloadrust-ee604fccd9d91b8f4cf9b4cad5bafdf698dd0335.tar.gz
rust-ee604fccd9d91b8f4cf9b4cad5bafdf698dd0335.zip
Allow limited access to `OsString` bytes
This extends #109698 to allow no-cost conversion between `Vec<u8>` and `OsString`
as suggested in feedback from `os_str_bytes` crate in #111544.
Diffstat (limited to 'library/std/src/sys/unix/os_str.rs')
-rw-r--r--library/std/src/sys/unix/os_str.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/library/std/src/sys/unix/os_str.rs b/library/std/src/sys/unix/os_str.rs
index f7333fd5a1f..463b0a27515 100644
--- a/library/std/src/sys/unix/os_str.rs
+++ b/library/std/src/sys/unix/os_str.rs
@@ -96,6 +96,16 @@ impl AsInner<[u8]> for Buf {
 }
 
 impl Buf {
+    #[inline]
+    pub fn into_os_str_bytes(self) -> Vec<u8> {
+        self.inner
+    }
+
+    #[inline]
+    pub unsafe fn from_os_str_bytes_unchecked(s: Vec<u8>) -> Self {
+        Self { inner: s }
+    }
+
     pub fn from_string(s: String) -> Buf {
         Buf { inner: s.into_bytes() }
     }