diff options
author | Ben Bridle <bridle.benjamin@gmail.com> | 2024-10-07 17:46:52 +1300 |
---|---|---|
committer | Ben Bridle <bridle.benjamin@gmail.com> | 2024-10-07 17:46:52 +1300 |
commit | 5118fbcc0618dadcb82247a7fedcdcb383fc4c96 (patch) | |
tree | 3337b1eab5be29d581209d1454f010c29f4a646f | |
parent | 5d38f27393cbb5e90ec69b1ea5d8fa85fc0b34cd (diff) | |
download | buffer-5118fbcc0618dadcb82247a7fedcdcb383fc4c96.zip |
Implement as_mut_rows for Buffer
This is to match the existing immutable as_rows method.
-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) } |