about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--library/core/src/fmt/mod.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/library/core/src/fmt/mod.rs b/library/core/src/fmt/mod.rs
index 10e1d27c88a..4cc2a9cf96d 100644
--- a/library/core/src/fmt/mod.rs
+++ b/library/core/src/fmt/mod.rs
@@ -2401,6 +2401,11 @@ impl Debug for str {
         f.write_char('"')?;
         let mut from = 0;
         for (i, c) in self.char_indices() {
+            // a fast path for ASCII chars that do not need escapes:
+            if matches!(c, ' '..='~') && !matches!(c, '\\' | '\"') {
+                continue;
+            }
+
             let esc = c.escape_debug_ext(EscapeDebugExtArgs {
                 escape_grapheme_extended: true,
                 escape_single_quote: false,