From 67fe54119bd8783eee91143b326bd3ba571bfffb Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Sat, 18 Jan 2020 13:49:20 +0800 Subject: [PATCH] Avoid allocating temporary Strings in Display implementations --- src/cursor.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cursor.rs b/src/cursor.rs index bbc0394..939529b 100644 --- a/src/cursor.rs +++ b/src/cursor.rs @@ -50,7 +50,7 @@ impl Default for Goto { impl fmt::Display for Goto { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { debug_assert!(self != &Goto(0, 0), "Goto is one-based."); - f.write_str(&String::from(*self)) + write!(f, "\x1B[{};{}H", self.1, self.0) } } @@ -67,7 +67,7 @@ impl From for String { impl fmt::Display for Left { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_str(&String::from(*self)) + write!(f, "\x1B[{}D", self.0) } } @@ -84,7 +84,7 @@ impl From for String { impl fmt::Display for Right { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_str(&String::from(*self)) + write!(f, "\x1B[{}C", self.0) } } @@ -101,7 +101,7 @@ impl From for String { impl fmt::Display for Up { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_str(&String::from(*self)) + write!(f, "\x1B[{}A", self.0) } } @@ -118,7 +118,7 @@ impl From for String { impl fmt::Display for Down { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_str(&String::from(*self)) + write!(f, "\x1B[{}B", self.0) } }