MutSlice2

Struct MutSlice2 

Source
pub struct MutSlice2<'a, T>(/* private fields */);
Expand description

A mutable rectangular view to a region of a Buf2, a Slice2, or in general any &[T] slice of memory.

Implementations§

Source§

impl<'a, T> MutSlice2<'a, T>

Source

pub fn new(dims: Dims, stride: u32, data: &'a mut [T]) -> Self

Returns a new MutSlice2 view to data with dimensions w and h and stride stride.

See Slice2::new for more information.

Methods from Deref<Target = Inner<T, &'a mut [T]>>§

Source

pub fn width(&self) -> u32

Returns the width of self.

Source

pub fn height(&self) -> u32

Returns the height of self.

Source

pub fn dims(&self) -> Dims

Returns the width and height of self.

Source

pub fn stride(&self) -> u32

Returns the stride of self.

Source

pub fn is_contiguous(&self) -> bool

Returns whether the rows of self are stored as one contiguous slice, without gaps between rows.

Buf2 instances are always contiguous. A Slice2 or MutSlice2 instance is contiguous if its width equals its stride, if its height is 1, or if it is empty.

Source

pub fn is_empty(&self) -> bool

Returns whether self contains no elements.

Source

pub fn as_slice2(&self) -> Slice2<'_, T>

Borrows self as a Slice2.

Source

pub fn slice(&self, rect: impl Into<Rect>) -> Slice2<'_, T>

Returns a borrowed rectangular slice of self.

§Panics

If any part of rect is outside the bounds of self.

Source

pub fn get(&self, pos: impl Into<Point2u>) -> Option<&T>

Returns a reference to the element at pos, or None if pos is out of bounds.

Source

pub fn rows(&self) -> impl Iterator<Item = &[T]>

Returns an iterator over the rows of self as &[T] slices.

The length of each slice equals self.width().

Source

pub fn iter(&self) -> impl Iterator<Item = &T>

Returns an iterator over the elements of self in row-major order.

First returns the elements on row 0 from left to right, followed by the elements on row 1, and so on.

Source

pub fn as_mut_slice2(&mut self) -> MutSlice2<'_, T>

Returns a mutably borrowed rectangular slice of self.

Source

pub fn rows_mut(&mut self) -> impl Iterator<Item = &mut [T]>

Returns an iterator over the rows of this buffer as &mut [T].

The length of each slice equals self.width().

Source

pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut T>

Returns a mutable iterator over all the elements of self, yielded in row-major order.

Source

pub fn fill(&mut self, val: T)
where T: Clone,

Fills self with clones of the value.

Source

pub fn fill_with<F>(&mut self, fill_fn: F)
where F: FnMut(u32, u32) -> T,

Fills self by calling a function for each element.

Calls f(x, y) for every element, where x and y are the column and row indices of the element. Proceeds in row-major order.

Source

pub fn copy_from(&mut self, other: impl AsSlice2<T>)
where T: Copy,

Copies each element in other to the same position in self.

This operation is often called “blitting”.

§Panics

if the dimensions of self and other do not match.

Source

pub fn get_mut(&mut self, pos: impl Into<Point2u>) -> Option<&mut T>

Returns a mutable reference to the element at pos, or None if pos is out of bounds.

Source

pub fn slice_mut(&mut self, rect: impl Into<Rect>) -> MutSlice2<'_, T>

Returns a mutably borrowed rectangular slice of self.

§Panics

If any part of rect is outside the bounds of self.

Trait Implementations§

Source§

impl<T> AsMutSlice2<T> for MutSlice2<'_, T>

Source§

fn as_mut_slice2(&mut self) -> MutSlice2<'_, T>

Returns a mutably borrowed MutSlice2 view of Self.
Source§

impl<T> AsSlice2<T> for MutSlice2<'_, T>

Source§

fn as_slice2(&self) -> Slice2<'_, T>

Returns a borrowed Slice2 view of Self.
Source§

impl<T> Debug for MutSlice2<'_, T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, T> Deref for MutSlice2<'a, T>

Source§

type Target = Inner<T, &'a mut [T]>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<'a, T> DerefMut for MutSlice2<'a, T>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<'a, T> Freeze for MutSlice2<'a, T>

§

impl<'a, T> RefUnwindSafe for MutSlice2<'a, T>
where T: RefUnwindSafe,

§

impl<'a, T> Send for MutSlice2<'a, T>
where T: Send,

§

impl<'a, T> Sync for MutSlice2<'a, T>
where T: Sync,

§

impl<'a, T> Unpin for MutSlice2<'a, T>
where T: Unpin,

§

impl<'a, T> !UnwindSafe for MutSlice2<'a, T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.