@@ -154,36 +154,34 @@ impl OsString {
154154 /// # Safety
155155 ///
156156 /// As the encoding is unspecified, callers must pass in bytes that originated as a mixture of
157- /// validated UTF-8 and bytes from [`OsStr::as_os_str_bytes `] from within the same rust version
157+ /// validated UTF-8 and bytes from [`OsStr::as_encoded_bytes `] from within the same rust version
158158 /// built for the same target platform. For example, reconstructing an `OsString` from bytes sent
159159 /// over the network or stored in a file will likely violate these safety rules.
160160 ///
161- /// Due to the encoding being self-synchronizing, the bytes from [`OsStr::as_os_str_bytes `] can be
161+ /// Due to the encoding being self-synchronizing, the bytes from [`OsStr::as_encoded_bytes `] can be
162162 /// split either immediately before or immediately after any valid non-empty UTF-8 substring.
163163 ///
164164 /// # Example
165165 ///
166166 /// ```
167- /// #![feature(os_str_bytes)]
168- ///
169167 /// use std::ffi::OsStr;
170168 ///
171169 /// let os_str = OsStr::new("Mary had a little lamb");
172- /// let bytes = os_str.as_os_str_bytes ();
170+ /// let bytes = os_str.as_encoded_bytes ();
173171 /// let words = bytes.split(|b| *b == b' ');
174172 /// let words: Vec<&OsStr> = words.map(|word| {
175173 /// // SAFETY:
176- /// // - Each `word` only contains content that originated from `OsStr::as_os_str_bytes `
174+ /// // - Each `word` only contains content that originated from `OsStr::as_encoded_bytes `
177175 /// // - Only split with ASCII whitespace which is a non-empty UTF-8 substring
178- /// unsafe { OsStr::from_os_str_bytes_unchecked (word) }
176+ /// unsafe { OsStr::from_encoded_bytes_unchecked (word) }
179177 /// }).collect();
180178 /// ```
181179 ///
182180 /// [conversions]: super#conversions
183181 #[ inline]
184- #[ unstable ( feature = "os_str_bytes" , issue = "111544 " ) ]
185- pub unsafe fn from_os_str_bytes_unchecked ( bytes : Vec < u8 > ) -> Self {
186- OsString { inner : Buf :: from_os_str_bytes_unchecked ( bytes) }
182+ #[ stable ( feature = "os_str_bytes" , since = "CURRENT_RUSTC_VERSION " ) ]
183+ pub unsafe fn from_encoded_bytes_unchecked ( bytes : Vec < u8 > ) -> Self {
184+ OsString { inner : Buf :: from_encoded_bytes_unchecked ( bytes) }
187185 }
188186
189187 /// Converts to an [`OsStr`] slice.
@@ -205,7 +203,7 @@ impl OsString {
205203 }
206204
207205 /// Converts the `OsString` into a byte slice. To convert the byte slice back into an
208- /// `OsString`, use the [`OsStr::from_os_str_bytes_unchecked `] function.
206+ /// `OsString`, use the [`OsStr::from_encoded_bytes_unchecked `] function.
209207 ///
210208 /// The byte encoding is an unspecified, platform-specific, self-synchronizing superset of UTF-8.
211209 /// By being a self-synchronizing superset of UTF-8, this encoding is also a superset of 7-bit
@@ -219,9 +217,9 @@ impl OsString {
219217 ///
220218 /// [`std::ffi`]: crate::ffi
221219 #[ inline]
222- #[ unstable ( feature = "os_str_bytes" , issue = "111544 " ) ]
223- pub fn into_os_str_bytes ( self ) -> Vec < u8 > {
224- self . inner . into_os_str_bytes ( )
220+ #[ stable ( feature = "os_str_bytes" , since = "CURRENT_RUSTC_VERSION " ) ]
221+ pub fn into_encoded_bytes ( self ) -> Vec < u8 > {
222+ self . inner . into_encoded_bytes ( )
225223 }
226224
227225 /// Converts the `OsString` into a [`String`] if it contains valid Unicode data.
@@ -745,36 +743,34 @@ impl OsStr {
745743 /// # Safety
746744 ///
747745 /// As the encoding is unspecified, callers must pass in bytes that originated as a mixture of
748- /// validated UTF-8 and bytes from [`OsStr::as_os_str_bytes `] from within the same rust version
746+ /// validated UTF-8 and bytes from [`OsStr::as_encoded_bytes `] from within the same rust version
749747 /// built for the same target platform. For example, reconstructing an `OsStr` from bytes sent
750748 /// over the network or stored in a file will likely violate these safety rules.
751749 ///
752- /// Due to the encoding being self-synchronizing, the bytes from [`OsStr::as_os_str_bytes `] can be
750+ /// Due to the encoding being self-synchronizing, the bytes from [`OsStr::as_encoded_bytes `] can be
753751 /// split either immediately before or immediately after any valid non-empty UTF-8 substring.
754752 ///
755753 /// # Example
756754 ///
757755 /// ```
758- /// #![feature(os_str_bytes)]
759- ///
760756 /// use std::ffi::OsStr;
761757 ///
762758 /// let os_str = OsStr::new("Mary had a little lamb");
763- /// let bytes = os_str.as_os_str_bytes ();
759+ /// let bytes = os_str.as_encoded_bytes ();
764760 /// let words = bytes.split(|b| *b == b' ');
765761 /// let words: Vec<&OsStr> = words.map(|word| {
766762 /// // SAFETY:
767- /// // - Each `word` only contains content that originated from `OsStr::as_os_str_bytes `
763+ /// // - Each `word` only contains content that originated from `OsStr::as_encoded_bytes `
768764 /// // - Only split with ASCII whitespace which is a non-empty UTF-8 substring
769- /// unsafe { OsStr::from_os_str_bytes_unchecked (word) }
765+ /// unsafe { OsStr::from_encoded_bytes_unchecked (word) }
770766 /// }).collect();
771767 /// ```
772768 ///
773769 /// [conversions]: super#conversions
774770 #[ inline]
775- #[ unstable ( feature = "os_str_bytes" , issue = "111544 " ) ]
776- pub unsafe fn from_os_str_bytes_unchecked ( bytes : & [ u8 ] ) -> & Self {
777- Self :: from_inner ( Slice :: from_os_str_bytes_unchecked ( bytes) )
771+ #[ stable ( feature = "os_str_bytes" , since = "CURRENT_RUSTC_VERSION " ) ]
772+ pub unsafe fn from_encoded_bytes_unchecked ( bytes : & [ u8 ] ) -> & Self {
773+ Self :: from_inner ( Slice :: from_encoded_bytes_unchecked ( bytes) )
778774 }
779775
780776 #[ inline]
@@ -948,7 +944,7 @@ impl OsStr {
948944 }
949945
950946 /// Converts an OS string slice to a byte slice. To convert the byte slice back into an OS
951- /// string slice, use the [`OsStr::from_os_str_bytes_unchecked `] function.
947+ /// string slice, use the [`OsStr::from_encoded_bytes_unchecked `] function.
952948 ///
953949 /// The byte encoding is an unspecified, platform-specific, self-synchronizing superset of UTF-8.
954950 /// By being a self-synchronizing superset of UTF-8, this encoding is also a superset of 7-bit
@@ -962,9 +958,9 @@ impl OsStr {
962958 ///
963959 /// [`std::ffi`]: crate::ffi
964960 #[ inline]
965- #[ unstable ( feature = "os_str_bytes" , issue = "111544 " ) ]
966- pub fn as_os_str_bytes ( & self ) -> & [ u8 ] {
967- self . inner . as_os_str_bytes ( )
961+ #[ stable ( feature = "os_str_bytes" , since = "CURRENT_RUSTC_VERSION " ) ]
962+ pub fn as_encoded_bytes ( & self ) -> & [ u8 ] {
963+ self . inner . as_encoded_bytes ( )
968964 }
969965
970966 /// Converts this string to its ASCII lower case equivalent in-place.
@@ -1270,7 +1266,7 @@ impl Default for &OsStr {
12701266impl PartialEq for OsStr {
12711267 #[ inline]
12721268 fn eq ( & self , other : & OsStr ) -> bool {
1273- self . as_os_str_bytes ( ) . eq ( other. as_os_str_bytes ( ) )
1269+ self . as_encoded_bytes ( ) . eq ( other. as_encoded_bytes ( ) )
12741270 }
12751271}
12761272
@@ -1297,23 +1293,23 @@ impl Eq for OsStr {}
12971293impl PartialOrd for OsStr {
12981294 #[ inline]
12991295 fn partial_cmp ( & self , other : & OsStr ) -> Option < cmp:: Ordering > {
1300- self . as_os_str_bytes ( ) . partial_cmp ( other. as_os_str_bytes ( ) )
1296+ self . as_encoded_bytes ( ) . partial_cmp ( other. as_encoded_bytes ( ) )
13011297 }
13021298 #[ inline]
13031299 fn lt ( & self , other : & OsStr ) -> bool {
1304- self . as_os_str_bytes ( ) . lt ( other. as_os_str_bytes ( ) )
1300+ self . as_encoded_bytes ( ) . lt ( other. as_encoded_bytes ( ) )
13051301 }
13061302 #[ inline]
13071303 fn le ( & self , other : & OsStr ) -> bool {
1308- self . as_os_str_bytes ( ) . le ( other. as_os_str_bytes ( ) )
1304+ self . as_encoded_bytes ( ) . le ( other. as_encoded_bytes ( ) )
13091305 }
13101306 #[ inline]
13111307 fn gt ( & self , other : & OsStr ) -> bool {
1312- self . as_os_str_bytes ( ) . gt ( other. as_os_str_bytes ( ) )
1308+ self . as_encoded_bytes ( ) . gt ( other. as_encoded_bytes ( ) )
13131309 }
13141310 #[ inline]
13151311 fn ge ( & self , other : & OsStr ) -> bool {
1316- self . as_os_str_bytes ( ) . ge ( other. as_os_str_bytes ( ) )
1312+ self . as_encoded_bytes ( ) . ge ( other. as_encoded_bytes ( ) )
13171313 }
13181314}
13191315
@@ -1332,7 +1328,7 @@ impl PartialOrd<str> for OsStr {
13321328impl Ord for OsStr {
13331329 #[ inline]
13341330 fn cmp ( & self , other : & OsStr ) -> cmp:: Ordering {
1335- self . as_os_str_bytes ( ) . cmp ( other. as_os_str_bytes ( ) )
1331+ self . as_encoded_bytes ( ) . cmp ( other. as_encoded_bytes ( ) )
13361332 }
13371333}
13381334
@@ -1382,7 +1378,7 @@ impl_cmp!(Cow<'a, OsStr>, OsString);
13821378impl Hash for OsStr {
13831379 #[ inline]
13841380 fn hash < H : Hasher > ( & self , state : & mut H ) {
1385- self . as_os_str_bytes ( ) . hash ( state)
1381+ self . as_encoded_bytes ( ) . hash ( state)
13861382 }
13871383}
13881384
0 commit comments