about summary refs log tree commit diff
path: root/library/core/src/ascii.rs
diff options
context:
space:
mode:
authorMarkus Reiter <me@reitermark.us>2024-04-25 01:26:32 +0200
committerMarkus Reiter <me@reitermark.us>2024-05-08 21:52:32 +0200
commit16981ba40607ba87bc3767c0e810622455dc0d85 (patch)
treef574a0050a74532020f53325f2be7071788f4add /library/core/src/ascii.rs
parente3fc97be2b90add55bbe48362cba902c6a0675be (diff)
downloadrust-16981ba40607ba87bc3767c0e810622455dc0d85.tar.gz
rust-16981ba40607ba87bc3767c0e810622455dc0d85.zip
Avoid panicking branch in `EscapeIterInner`.
Diffstat (limited to 'library/core/src/ascii.rs')
-rw-r--r--library/core/src/ascii.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/library/core/src/ascii.rs b/library/core/src/ascii.rs
index c29e5565d51..17fbb19d039 100644
--- a/library/core/src/ascii.rs
+++ b/library/core/src/ascii.rs
@@ -91,17 +91,21 @@ pub struct EscapeDefault(escape::EscapeIterInner<4>);
 /// ```
 #[stable(feature = "rust1", since = "1.0.0")]
 pub fn escape_default(c: u8) -> EscapeDefault {
-    let mut data = [Char::Null; 4];
-    let range = escape::escape_ascii_into(&mut data, c);
-    EscapeDefault(escape::EscapeIterInner::new(data, range))
+    EscapeDefault::new(c)
 }
 
 impl EscapeDefault {
+    #[inline]
+    pub(crate) const fn new(c: u8) -> Self {
+        Self(escape::EscapeIterInner::ascii(c))
+    }
+
+    #[inline]
     pub(crate) fn empty() -> Self {
-        let data = [Char::Null; 4];
-        EscapeDefault(escape::EscapeIterInner::new(data, 0..0))
+        EscapeDefault(escape::EscapeIterInner::empty())
     }
 
+    #[inline]
     pub(crate) fn as_str(&self) -> &str {
         self.0.as_str()
     }