|
2 | 2 |
|
3 | 3 | #![stable(feature = "rust1", since = "1.0.0")] |
4 | 4 |
|
5 | | -use crate::ffi::{OsStr, OsString}; |
6 | | -use crate::mem; |
7 | | -use crate::sys::os_str::Buf; |
8 | | -use crate::sys_common::{FromInner, IntoInner, AsInner}; |
9 | | - |
10 | | -/// WASI-specific extensions to [`OsString`]. |
11 | | -/// |
12 | | -/// [`OsString`]: ../../../../std/ffi/struct.OsString.html |
13 | | -#[stable(feature = "rust1", since = "1.0.0")] |
14 | | -pub trait OsStringExt { |
15 | | - /// Creates an `OsString` from a byte vector. |
16 | | - #[stable(feature = "rust1", since = "1.0.0")] |
17 | | - fn from_vec(vec: Vec<u8>) -> Self; |
18 | | - |
19 | | - /// Yields the underlying byte vector of this `OsString`. |
20 | | - #[stable(feature = "rust1", since = "1.0.0")] |
21 | | - fn into_vec(self) -> Vec<u8>; |
22 | | -} |
23 | | - |
24 | | -#[stable(feature = "rust1", since = "1.0.0")] |
25 | | -impl OsStringExt for OsString { |
26 | | - fn from_vec(vec: Vec<u8>) -> OsString { |
27 | | - FromInner::from_inner(Buf { inner: vec }) |
28 | | - } |
29 | | - fn into_vec(self) -> Vec<u8> { |
30 | | - self.into_inner().inner |
31 | | - } |
32 | | -} |
33 | | - |
34 | | -/// WASI-specific extensions to [`OsStr`]. |
35 | | -/// |
36 | | -/// [`OsStr`]: ../../../../std/ffi/struct.OsStr.html |
37 | 5 | #[stable(feature = "rust1", since = "1.0.0")] |
38 | | -pub trait OsStrExt { |
39 | | - #[stable(feature = "rust1", since = "1.0.0")] |
40 | | - /// Creates an [`OsStr`] from a byte slice. |
41 | | - /// |
42 | | - /// [`OsStr`]: ../../../ffi/struct.OsStr.html |
43 | | - fn from_bytes(slice: &[u8]) -> &Self; |
44 | | - |
45 | | - /// Gets the underlying byte view of the [`OsStr`] slice. |
46 | | - /// |
47 | | - /// [`OsStr`]: ../../../ffi/struct.OsStr.html |
48 | | - #[stable(feature = "rust1", since = "1.0.0")] |
49 | | - fn as_bytes(&self) -> &[u8]; |
50 | | -} |
51 | | - |
52 | | -#[stable(feature = "rust1", since = "1.0.0")] |
53 | | -impl OsStrExt for OsStr { |
54 | | - fn from_bytes(slice: &[u8]) -> &OsStr { |
55 | | - unsafe { mem::transmute(slice) } |
56 | | - } |
57 | | - fn as_bytes(&self) -> &[u8] { |
58 | | - &self.as_inner().inner |
59 | | - } |
60 | | -} |
61 | | - |
| 6 | +pub use crate::sys_common::os_str_bytes::*; |
0 commit comments