about summary refs log tree commit diff
path: root/src/libstd/sys
diff options
context:
space:
mode:
authorClar Charr <clar@charr.xyz>2017-02-13 20:37:42 -0500
committerClar Charr <clar@charr.xyz>2017-03-10 14:57:57 -0500
commit560944b982385623655f1e8503af5e7b4ca0a436 (patch)
treee633ec6c7e9789d4976b184e3e9dfd3720e2c4b4 /src/libstd/sys
parentf573db4f80c75f156df8a743f456bf087ec81dc2 (diff)
downloadrust-560944b982385623655f1e8503af5e7b4ca0a436.tar.gz
rust-560944b982385623655f1e8503af5e7b4ca0a436.zip
Add From<Box<..>> implementations.
Diffstat (limited to 'src/libstd/sys')
-rw-r--r--src/libstd/sys/redox/os_str.rs6
-rw-r--r--src/libstd/sys/unix/os_str.rs6
-rw-r--r--src/libstd/sys/windows/os_str.rs6
3 files changed, 18 insertions, 0 deletions
diff --git a/src/libstd/sys/redox/os_str.rs b/src/libstd/sys/redox/os_str.rs
index 0f967863899..90b8289524e 100644
--- a/src/libstd/sys/redox/os_str.rs
+++ b/src/libstd/sys/redox/os_str.rs
@@ -99,6 +99,12 @@ impl Buf {
     pub fn into_box(self) -> Box<Slice> {
         unsafe { mem::transmute(self.inner.into_boxed_slice()) }
     }
+
+    #[inline]
+    pub fn from_box(boxed: Box<Slice>) -> Buf {
+        let inner: Box<[u8]> = unsafe { mem::transmute(boxed) };
+        Buf { inner: inner.into_vec() }
+    }
 }
 
 impl Slice {
diff --git a/src/libstd/sys/unix/os_str.rs b/src/libstd/sys/unix/os_str.rs
index 938bcfc6d16..225924168a5 100644
--- a/src/libstd/sys/unix/os_str.rs
+++ b/src/libstd/sys/unix/os_str.rs
@@ -99,6 +99,12 @@ impl Buf {
     pub fn into_box(self) -> Box<Slice> {
         unsafe { mem::transmute(self.inner.into_boxed_slice()) }
     }
+
+    #[inline]
+    pub fn from_box(boxed: Box<Slice>) -> Buf {
+        let inner: Box<[u8]> = unsafe { mem::transmute(boxed) };
+        Buf { inner: inner.into_vec() }
+    }
 }
 
 impl Slice {
diff --git a/src/libstd/sys/windows/os_str.rs b/src/libstd/sys/windows/os_str.rs
index 04e45dcf549..810b67b785b 100644
--- a/src/libstd/sys/windows/os_str.rs
+++ b/src/libstd/sys/windows/os_str.rs
@@ -93,6 +93,12 @@ impl Buf {
     pub fn into_box(self) -> Box<Slice> {
         unsafe { mem::transmute(self.inner.into_box()) }
     }
+
+    #[inline]
+    pub fn from_box(boxed: Box<Slice>) -> Buf {
+        let inner: Box<Wtf8> = unsafe { mem::transmute(boxed) };
+        Buf { inner: Wtf8Buf::from_box(inner) }
+    }
 }
 
 impl Slice {