diff options
| author | Markus Reiter <me@reitermark.us> | 2024-04-25 01:26:32 +0200 |
|---|---|---|
| committer | Markus Reiter <me@reitermark.us> | 2024-05-08 21:52:32 +0200 |
| commit | 16981ba40607ba87bc3767c0e810622455dc0d85 (patch) | |
| tree | f574a0050a74532020f53325f2be7071788f4add /library/core/src/ascii.rs | |
| parent | e3fc97be2b90add55bbe48362cba902c6a0675be (diff) | |
| download | rust-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.rs | 14 |
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() } |
