aboutsummaryrefslogtreecommitdiffstats
path: root/src/screen.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-10 04:51:22 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-10 08:07:38 -0500
commitb04c0e6e97765aeb888479c5e0bc27d54de60659 (patch)
treef8ebeae6cfaecd309152dd6cde5dd14cfdba3083 /src/screen.rs
parent7cd6962a9ef544049bb637c17506f794f0a37f4d (diff)
downloadvt100-rust-b04c0e6e97765aeb888479c5e0bc27d54de60659.tar.gz
vt100-rust-b04c0e6e97765aeb888479c5e0bc27d54de60659.zip
optimize cursor movement a bit
Diffstat (limited to 'src/screen.rs')
-rw-r--r--src/screen.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/screen.rs b/src/screen.rs
index 5150e3a..b774c10 100644
--- a/src/screen.rs
+++ b/src/screen.rs
@@ -207,12 +207,16 @@ impl Screen {
start: u16,
width: u16,
) -> impl Iterator<Item = Vec<u8>> + '_ {
- self.grid().visible_rows().map(move |row| {
+ self.grid().visible_rows().enumerate().map(move |(i, row)| {
+ let i = i.try_into().unwrap();
let mut contents = vec![];
row.write_contents_formatted(
&mut contents,
start,
width,
+ i,
+ false,
+ crate::grid::Pos { row: i, col: start },
crate::attrs::Attrs::default(),
);
contents
@@ -263,14 +267,18 @@ impl Screen {
self.grid()
.visible_rows()
.zip(prev.grid().visible_rows())
- .map(move |(row, prev_row)| {
+ .enumerate()
+ .map(move |(i, (row, prev_row))| {
+ let i = i.try_into().unwrap();
let mut contents = vec![];
row.write_contents_diff(
&mut contents,
prev_row,
- |_| (),
start,
width,
+ i,
+ false,
+ crate::grid::Pos { row: i, col: start },
crate::attrs::Attrs::default(),
);
contents