mirror of
https://github.com/alacritty/alacritty.git
synced 2024-11-18 13:55:23 -05:00
Improve ergonomics of iterating on grid::Row
Iterating on grid::Row types no longer requires calls to iter() or iter_mut().
This commit is contained in:
parent
a2ca10643f
commit
f2e6d66a5e
2 changed files with 24 additions and 5 deletions
23
src/grid.rs
23
src/grid.rs
|
@ -16,7 +16,8 @@
|
|||
|
||||
use std::ops::{Index, IndexMut, Deref, DerefMut, Range, RangeTo, RangeFrom, RangeFull};
|
||||
use std::cmp::Ordering;
|
||||
use std::slice::{Iter, IterMut};
|
||||
use std::slice::{self, Iter, IterMut};
|
||||
use std::iter::IntoIterator;
|
||||
|
||||
use util::Rotate;
|
||||
|
||||
|
@ -233,6 +234,24 @@ impl Row {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a> IntoIterator for &'a Row {
|
||||
type Item = &'a Cell;
|
||||
type IntoIter = slice::Iter<'a, Cell>;
|
||||
|
||||
fn into_iter(self) -> slice::Iter<'a, Cell> {
|
||||
self.iter()
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> IntoIterator for &'a mut Row {
|
||||
type Item = &'a mut Cell;
|
||||
type IntoIter = slice::IterMut<'a, Cell>;
|
||||
|
||||
fn into_iter(mut self) -> slice::IterMut<'a, Cell> {
|
||||
self.iter_mut()
|
||||
}
|
||||
}
|
||||
|
||||
impl Deref for Row {
|
||||
type Target = Vec<Cell>;
|
||||
fn deref(&self) -> &Self::Target {
|
||||
|
@ -295,7 +314,7 @@ macro_rules! clear_region_impl {
|
|||
impl ClearRegion<$range> for Grid {
|
||||
fn clear_region(&mut self, region: $range) {
|
||||
for row in self.raw[region].iter_mut() {
|
||||
for cell in row.iter_mut() {
|
||||
for cell in row {
|
||||
cell.reset();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -505,7 +505,7 @@ impl ansi::Handler for Term {
|
|||
ansi::LineClearMode::Right => {
|
||||
let row = &mut self.grid[self.cursor.y as usize];
|
||||
let start = self.cursor.x as usize;
|
||||
for cell in row[start..].iter_mut() {
|
||||
for cell in &mut row[start..] {
|
||||
cell.reset();
|
||||
}
|
||||
},
|
||||
|
@ -520,8 +520,8 @@ impl ansi::Handler for Term {
|
|||
let end = self.grid.num_rows();
|
||||
for i in start..end {
|
||||
let row = &mut self.grid[i];
|
||||
for cell in row.iter_mut() {
|
||||
cell.c = ' ';
|
||||
for cell in row {
|
||||
cell.reset();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue