about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBenoît du Garreau <bdgdlm@outlook.com>2022-08-24 01:21:40 +0200
committerBenoît du Garreau <bdgdlm@outlook.com>2022-08-24 01:21:40 +0200
commit3aa6fe376d776aa62a89d7b7ef4929eda51ce034 (patch)
treef203cf41705279f6db65e4e4f00c0115caa3c7e0
parent060e47f74a91b28c3db28d80a6a9d6841ca51026 (diff)
downloadrust-3aa6fe376d776aa62a89d7b7ef4929eda51ce034.tar.gz
rust-3aa6fe376d776aa62a89d7b7ef4929eda51ce034.zip
Remove a packing branch from `fmt::builders::PadAdapter`
-rw-r--r--library/core/src/fmt/builders.rs18
1 files changed, 4 insertions, 14 deletions
diff --git a/library/core/src/fmt/builders.rs b/library/core/src/fmt/builders.rs
index 32d1a4e5508..7da49b04aaa 100644
--- a/library/core/src/fmt/builders.rs
+++ b/library/core/src/fmt/builders.rs
@@ -28,24 +28,14 @@ impl<'buf, 'state> PadAdapter<'buf, 'state> {
 }
 
 impl fmt::Write for PadAdapter<'_, '_> {
-    fn write_str(&mut self, mut s: &str) -> fmt::Result {
-        while !s.is_empty() {
+    fn write_str(&mut self, s: &str) -> fmt::Result {
+        for s in s.split_inclusive('\n') {
             if self.state.on_newline {
                 self.buf.write_str("    ")?;
             }
 
-            let split = match s.find('\n') {
-                Some(pos) => {
-                    self.state.on_newline = true;
-                    pos + 1
-                }
-                None => {
-                    self.state.on_newline = false;
-                    s.len()
-                }
-            };
-            self.buf.write_str(&s[..split])?;
-            s = &s[split..];
+            self.state.on_newline = s.ends_with('\n');
+            self.buf.write_str(s)?;
         }
 
         Ok(())