diff options
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -2,7 +2,7 @@ pub use colour::Colour; pub use geometry::HasDimensions; use std::ops::{Deref, DerefMut, Index, IndexMut}; -use std::slice::SliceIndex; +use std::slice::{ChunksExact, ChunksExactMut, SliceIndex}; pub type Point = geometry::Point<i32>; pub type Dimensions = geometry::Dimensions<u32>; @@ -61,10 +61,13 @@ impl Buffer { self.dimensions = dimensions; } - pub fn as_rows(&self) -> std::slice::ChunksExact<Colour> { + pub fn as_rows(&self) -> ChunksExact<Colour> { self.pixels.chunks_exact(self.dimensions.width as usize) } + pub fn as_mut_rows(&mut self) -> ChunksExactMut<Colour> { + self.pixels.chunks_exact_mut(self.dimensions.width as usize) + } pub fn as_u32_slice(&self) -> &[u32] { unsafe { std::mem::transmute::<&[Colour], &[u32]>(&self.pixels) } |