aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-12-07 08:30:28 -0500
committerJesse Luehrs <doy@tozt.net>2019-12-07 08:30:28 -0500
commit03a6fe754172bf780fb854dcd693128c86caa53b (patch)
treefa94ca269c983e243ae08e8e3631b9b0c3e8a257
parent2234ccb9cde70d9b9fcc26a85523ffc97e3bebc6 (diff)
downloadvt100-rust-03a6fe754172bf780fb854dcd693128c86caa53b.tar.gz
vt100-rust-03a6fe754172bf780fb854dcd693128c86caa53b.zip
try to micro-optimize getting cell contents a bit
-rw-r--r--src/cell.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/cell.rs b/src/cell.rs
index 45e795b..95d047e 100644
--- a/src/cell.rs
+++ b/src/cell.rs
@@ -64,7 +64,11 @@ impl Cell {
/// used, but will contain at most one character with a non-zero character
/// width.
pub fn contents(&self) -> String {
- self.contents.iter().take(self.len()).collect::<String>()
+ let mut s = String::with_capacity(CODEPOINTS_IN_CELL * 4);
+ for c in self.contents.iter().take(self.len()) {
+ s.push(*c);
+ }
+ s
}
/// Returns whether the cell contains any text data.