aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-12-15 00:08:57 -0500
committerJesse Luehrs <doy@tozt.net>2021-12-15 00:09:53 -0500
commit866b160b9c9db80afde0b5855380cfe36e0f532c (patch)
treee5fd78a6bbf29271483e462f1399e1660b39a43a
parentc97d712c5266ec2c4095c90ef3553bc9741a8b1a (diff)
downloadvt100-rust-866b160b9c9db80afde0b5855380cfe36e0f532c.tar.gz
vt100-rust-866b160b9c9db80afde0b5855380cfe36e0f532c.zip
more conversion to indexing
-rw-r--r--src/cell.rs7
-rw-r--r--src/row.rs18
2 files changed, 11 insertions, 14 deletions
diff --git a/src/cell.rs b/src/cell.rs
index aa7532e..baa99bb 100644
--- a/src/cell.rs
+++ b/src/cell.rs
@@ -20,8 +20,7 @@ impl PartialEq<Self> for Cell {
}
let len = self.len();
// self.len() always returns a valid value
- self.contents.get(..len).unwrap()
- == other.contents.get(..len).unwrap()
+ self.contents[..len] == other.contents[..len]
}
}
@@ -48,13 +47,13 @@ impl Cell {
}
if len == 0 {
// 0 is always less than 6
- *self.contents.get_mut(0).unwrap() = ' ';
+ self.contents[0] = ' ';
self.len += 1;
}
let len = self.len();
// we already checked that len < CODEPOINTS_IN_CELL
- *self.contents.get_mut(len).unwrap() = c;
+ self.contents[len] = c;
self.len += 1;
}
diff --git a/src/row.rs b/src/row.rs
index 6ad5ec5..1f65b90 100644
--- a/src/row.rs
+++ b/src/row.rs
@@ -84,11 +84,11 @@ impl Row {
}
pub fn clear_wide(&mut self, col: u16) {
- let cell = self.get(col).unwrap();
+ let cell = &self.cells[usize::from(col)];
let other = if cell.is_wide() {
- self.get_mut(col + 1).unwrap()
+ &mut self.cells[usize::from(col + 1)]
} else if cell.is_wide_continuation() {
- self.get_mut(col - 1).unwrap()
+ &mut self.cells[usize::from(col - 1)]
} else {
return;
};
@@ -159,7 +159,7 @@ impl Row {
};
let mut prev_attrs = prev_attrs.unwrap_or_default();
- let first_cell = self.get(start).unwrap();
+ let first_cell = &self.cells[usize::from(start)];
if wrapping && first_cell == &default_cell {
let default_attrs = default_cell.attrs();
if &prev_attrs != default_attrs {
@@ -297,8 +297,8 @@ impl Row {
) -> (crate::grid::Pos, crate::attrs::Attrs) {
let mut prev_was_wide = false;
- let first_cell = self.get(start).unwrap();
- let prev_first_cell = prev.get(start).unwrap();
+ let first_cell = &self.cells[usize::from(start)];
+ let prev_first_cell = &prev.cells[usize::from(start)];
if wrapping
&& !prev_wrapping
&& first_cell == prev_first_cell
@@ -442,9 +442,7 @@ impl Row {
// drawing the next line can just start writing and be wrapped.
if (!self.wrapped && prev.wrapped) || (!prev.wrapped && self.wrapped)
{
- let end_pos = if self
- .get(self.cols() - 1)
- .unwrap()
+ let end_pos = if self.cells[usize::from(self.cols() - 1)]
.is_wide_continuation()
{
crate::grid::Pos {
@@ -463,7 +461,7 @@ impl Row {
if !self.wrapped {
crate::term::EraseChar::new(1).write_buf(contents);
}
- let end_cell = self.get(end_pos.col).unwrap();
+ let end_cell = &self.cells[usize::from(end_pos.col)];
if end_cell.has_contents() {
let attrs = end_cell.attrs();
if &prev_attrs != attrs {