diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-02-13 06:44:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-13 06:44:17 +0100 |
| commit | 5699f683a40aa905a21207fa482b4e1da93f1643 (patch) | |
| tree | aeb9b6b24f56cecce8f89b4b238acf33e4ace31b | |
| parent | b90a369f7c2660cb10cee6d0ee79cf4cdead08ee (diff) | |
| parent | de6e9731764af14b27b6158834454344da49c37d (diff) | |
| download | rust-5699f683a40aa905a21207fa482b4e1da93f1643.tar.gz rust-5699f683a40aa905a21207fa482b4e1da93f1643.zip | |
Rollup merge of #93886 - clarfonthey:stable_ascii_escape, r=Mark-Simulacrum
Stabilise inherent_ascii_escape (FCP in #77174) Implements #77174, which completed its FCP. This does *not* deprecate any existing methods or structs, as that is tracked in #93887. That stated, people should prefer using `u8::escape_ascii` to `std::ascii::escape_default`.
| -rw-r--r-- | library/alloc/src/lib.rs | 1 | ||||
| -rw-r--r-- | library/alloc/src/slice.rs | 2 | ||||
| -rw-r--r-- | library/core/src/num/mod.rs | 7 | ||||
| -rw-r--r-- | library/core/src/slice/ascii.rs | 17 | ||||
| -rw-r--r-- | library/core/src/slice/mod.rs | 2 |
5 files changed, 13 insertions, 16 deletions
diff --git a/library/alloc/src/lib.rs b/library/alloc/src/lib.rs index ab9f0b9d737..ce75859f963 100644 --- a/library/alloc/src/lib.rs +++ b/library/alloc/src/lib.rs @@ -112,7 +112,6 @@ #![feature(extend_one)] #![feature(fmt_internals)] #![feature(fn_traits)] -#![feature(inherent_ascii_escape)] #![feature(inplace_iteration)] #![feature(iter_advance_by)] #![feature(layout_for_ptr)] diff --git a/library/alloc/src/slice.rs b/library/alloc/src/slice.rs index a5c4140e313..f0397d08f95 100644 --- a/library/alloc/src/slice.rs +++ b/library/alloc/src/slice.rs @@ -108,7 +108,7 @@ pub use core::slice::ArrayChunks; pub use core::slice::ArrayChunksMut; #[unstable(feature = "array_windows", issue = "75027")] pub use core::slice::ArrayWindows; -#[unstable(feature = "inherent_ascii_escape", issue = "77174")] +#[stable(feature = "inherent_ascii_escape", since = "1.60.0")] pub use core::slice::EscapeAscii; #[stable(feature = "slice_get_slice", since = "1.28.0")] pub use core::slice::SliceIndex; diff --git a/library/core/src/num/mod.rs b/library/core/src/num/mod.rs index 864a253299f..72105888f94 100644 --- a/library/core/src/num/mod.rs +++ b/library/core/src/num/mod.rs @@ -791,7 +791,6 @@ impl u8 { /// # Examples /// /// ``` - /// #![feature(inherent_ascii_escape)] /// /// assert_eq!("0", b'0'.escape_ascii().to_string()); /// assert_eq!("\\t", b'\t'.escape_ascii().to_string()); @@ -804,10 +803,10 @@ impl u8 { /// ``` #[must_use = "this returns the escaped byte as an iterator, \ without modifying the original"] - #[unstable(feature = "inherent_ascii_escape", issue = "77174")] + #[stable(feature = "inherent_ascii_escape", since = "1.60.0")] #[inline] - pub fn escape_ascii(&self) -> ascii::EscapeDefault { - ascii::escape_default(*self) + pub fn escape_ascii(self) -> ascii::EscapeDefault { + ascii::escape_default(self) } pub(crate) fn is_utf8_char_boundary(self) -> bool { diff --git a/library/core/src/slice/ascii.rs b/library/core/src/slice/ascii.rs index 080256f493f..304ba7ee554 100644 --- a/library/core/src/slice/ascii.rs +++ b/library/core/src/slice/ascii.rs @@ -68,7 +68,6 @@ impl [u8] { /// # Examples /// /// ``` - /// #![feature(inherent_ascii_escape)] /// /// let s = b"0\t\r\n'\"\\\x9d"; /// let escaped = s.escape_ascii().to_string(); @@ -76,7 +75,7 @@ impl [u8] { /// ``` #[must_use = "this returns the escaped bytes as an iterator, \ without modifying the original"] - #[unstable(feature = "inherent_ascii_escape", issue = "77174")] + #[stable(feature = "inherent_ascii_escape", since = "1.60.0")] pub fn escape_ascii(&self) -> EscapeAscii<'_> { EscapeAscii { inner: self.iter().flat_map(EscapeByte) } } @@ -93,13 +92,13 @@ impl_fn_for_zst! { /// /// This `struct` is created by the [`slice::escape_ascii`] method. See its /// documentation for more information. -#[unstable(feature = "inherent_ascii_escape", issue = "77174")] +#[stable(feature = "inherent_ascii_escape", since = "1.60.0")] #[derive(Clone)] pub struct EscapeAscii<'a> { inner: iter::FlatMap<super::Iter<'a, u8>, ascii::EscapeDefault, EscapeByte>, } -#[unstable(feature = "inherent_ascii_escape", issue = "77174")] +#[stable(feature = "inherent_ascii_escape", since = "1.60.0")] impl<'a> iter::Iterator for EscapeAscii<'a> { type Item = u8; #[inline] @@ -131,23 +130,23 @@ impl<'a> iter::Iterator for EscapeAscii<'a> { } } -#[unstable(feature = "inherent_ascii_escape", issue = "77174")] +#[stable(feature = "inherent_ascii_escape", since = "1.60.0")] impl<'a> iter::DoubleEndedIterator for EscapeAscii<'a> { fn next_back(&mut self) -> Option<u8> { self.inner.next_back() } } -#[unstable(feature = "inherent_ascii_escape", issue = "77174")] +#[stable(feature = "inherent_ascii_escape", since = "1.60.0")] impl<'a> iter::ExactSizeIterator for EscapeAscii<'a> {} -#[unstable(feature = "inherent_ascii_escape", issue = "77174")] +#[stable(feature = "inherent_ascii_escape", since = "1.60.0")] impl<'a> iter::FusedIterator for EscapeAscii<'a> {} -#[unstable(feature = "inherent_ascii_escape", issue = "77174")] +#[stable(feature = "inherent_ascii_escape", since = "1.60.0")] impl<'a> fmt::Display for EscapeAscii<'a> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { self.clone().try_for_each(|b| f.write_char(b as char)) } } -#[unstable(feature = "inherent_ascii_escape", issue = "77174")] +#[stable(feature = "inherent_ascii_escape", since = "1.60.0")] impl<'a> fmt::Debug for EscapeAscii<'a> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("EscapeAscii").finish_non_exhaustive() diff --git a/library/core/src/slice/mod.rs b/library/core/src/slice/mod.rs index 4e22c1d8c6d..cd38c3a7547 100644 --- a/library/core/src/slice/mod.rs +++ b/library/core/src/slice/mod.rs @@ -81,7 +81,7 @@ pub use index::SliceIndex; #[unstable(feature = "slice_range", issue = "76393")] pub use index::range; -#[unstable(feature = "inherent_ascii_escape", issue = "77174")] +#[stable(feature = "inherent_ascii_escape", since = "1.60.0")] pub use ascii::EscapeAscii; /// Calculates the direction and split point of a one-sided range. |
