summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Bridle <bridle.benjamin@gmail.com>2024-10-07 17:46:52 +1300
committerBen Bridle <bridle.benjamin@gmail.com>2024-10-07 17:46:52 +1300
commit5118fbcc0618dadcb82247a7fedcdcb383fc4c96 (patch)
tree3337b1eab5be29d581209d1454f010c29f4a646f
parent5d38f27393cbb5e90ec69b1ea5d8fa85fc0b34cd (diff)
downloadbuffer-5118fbcc0618dadcb82247a7fedcdcb383fc4c96.zip
Implement as_mut_rows for Buffer
This is to match the existing immutable as_rows method.
-rw-r--r--src/lib.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib.rs b/src/lib.rs
index abcd80f..99c9529 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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) }