diff options
Diffstat (limited to 'src/grid')
-rw-r--r-- | src/grid/mod.rs | 16 | ||||
-rw-r--r-- | src/grid/row.rs | 43 |
2 files changed, 19 insertions, 40 deletions
diff --git a/src/grid/mod.rs b/src/grid/mod.rs index bd994033..9ca0011a 100644 --- a/src/grid/mod.rs +++ b/src/grid/mod.rs @@ -122,7 +122,7 @@ impl<T: Clone> Grid<T> { } fn grow_cols(&mut self, cols: index::Column, template: &T) { - for row in self.lines_mut() { + for row in self.raw.iter_mut() { row.grow(cols, template); } @@ -131,20 +131,8 @@ impl<T: Clone> Grid<T> { } - - impl<T> Grid<T> { #[inline] - pub fn lines(&self) -> vec_deque::Iter<Row<T>> { - self.raw.iter() - } - - #[inline] - pub fn lines_mut(&mut self) -> vec_deque::IterMut<Row<T>> { - self.raw.iter_mut() - } - - #[inline] pub fn num_lines(&self) -> index::Line { self.lines } @@ -216,7 +204,7 @@ impl<T> Grid<T> { } fn shrink_cols(&mut self, cols: index::Column) { - for row in self.lines_mut() { + for row in self.raw.iter_mut() { row.shrink(cols); } diff --git a/src/grid/row.rs b/src/grid/row.rs index 8711d04f..4b355a56 100644 --- a/src/grid/row.rs +++ b/src/grid/row.rs @@ -108,33 +108,8 @@ impl<T> IndexMut<Column> for Row<T> { } } -macro_rules! row_index_range { - ($range:ty) => { - impl<T> Index<$range> for Row<T> { - type Output = [T]; - - #[inline] - fn index(&self, index: $range) -> &[T] { - &self.0[index] - } - } - - impl<T> IndexMut<$range> for Row<T> { - #[inline] - fn index_mut(&mut self, index: $range) -> &mut [T] { - &mut self.0[index] - } - } - } -} - -row_index_range!(Range<usize>); -row_index_range!(RangeTo<usize>); -row_index_range!(RangeFrom<usize>); -row_index_range!(RangeFull); - // ----------------------------------------------------------------------------- -// Column ranges for Row +// Index ranges of columns // ----------------------------------------------------------------------------- impl<T> Index<Range<Column>> for Row<T> { @@ -184,3 +159,19 @@ impl<T> IndexMut<RangeFrom<Column>> for Row<T> { &mut self.0[(index.start.0)..] } } + +impl<T> Index<RangeFull> for Row<T> { + type Output = [T]; + + #[inline] + fn index(&self, _: RangeFull) -> &[T] { + &self.0[..] + } +} + +impl<T> IndexMut<RangeFull> for Row<T> { + #[inline] + fn index_mut(&mut self, _: RangeFull) -> &mut [T] { + &mut self.0[..] + } +} |