diff options
| author | Clar Charr <clar@charr.xyz> | 2017-02-13 20:37:42 -0500 |
|---|---|---|
| committer | Clar Charr <clar@charr.xyz> | 2017-03-10 14:57:57 -0500 |
| commit | 560944b982385623655f1e8503af5e7b4ca0a436 (patch) | |
| tree | e633ec6c7e9789d4976b184e3e9dfd3720e2c4b4 /src/libstd/sys | |
| parent | f573db4f80c75f156df8a743f456bf087ec81dc2 (diff) | |
| download | rust-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.rs | 6 | ||||
| -rw-r--r-- | src/libstd/sys/unix/os_str.rs | 6 | ||||
| -rw-r--r-- | src/libstd/sys/windows/os_str.rs | 6 |
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 { |
