Trait feanor_math::vector::VectorViewMut

source ·
pub trait VectorViewMut<T: ?Sized>: VectorView<T> {
    // Required method
    fn at_mut(&mut self, i: usize) -> &mut T;

    // Provided method
    fn map_mut<U, F: Fn(&T) -> &U, G: Fn(&mut T) -> &mut U>(
        self,
        f: F,
        f_mut: G,
    ) -> MapMut<Self, F, G, T>
       where Self: Sized { ... }
}
Expand description

A trait for objects that provides mutable access to a 1-dimensional array of objects.

If only immutable access is provided, use crate::vector::VectorViewMut.

§Iterators

Note that we cannot provide an iter_mut() function - it is not clear that the underlying vector allows elements at different indices to be borrowed mutably at once (e.g. sparse implementations). This is of course different in the immutable case.

Required Methods§

source

fn at_mut(&mut self, i: usize) -> &mut T

Provided Methods§

source

fn map_mut<U, F: Fn(&T) -> &U, G: Fn(&mut T) -> &mut U>( self, f: F, f_mut: G, ) -> MapMut<Self, F, G, T>
where Self: Sized,

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a, T: ?Sized, V> VectorViewMut<T> for &'a mut V
where V: VectorViewMut<T> + ?Sized,

source§

fn at_mut(&mut self, i: usize) -> &mut T

source§

impl<T> VectorViewMut<T> for [T]

source§

fn at_mut(&mut self, i: usize) -> &mut T

source§

impl<T> VectorViewMut<T> for (T, T)

source§

fn at_mut(&mut self, i: usize) -> &mut T

source§

impl<T> VectorViewMut<T> for (T, T, T)

source§

fn at_mut(&mut self, i: usize) -> &mut T

source§

impl<T> VectorViewMut<T> for Box<[T]>

source§

fn at_mut(&mut self, i: usize) -> &mut T

source§

impl<T> VectorViewMut<T> for Vec<T>

source§

fn at_mut(&mut self, i: usize) -> &mut T

source§

impl<T, const N: usize> VectorViewMut<T> for [T; N]

source§

fn at_mut(&mut self, i: usize) -> &mut T

Implementors§

source§

impl<'a, V, T> VectorViewMut<T> for ColumnMut<'a, V, T>
where V: AsPointerToSlice<T>,

source§

impl<R: RingStore> VectorViewMut<<<R as RingStore>::Type as RingBase>::Element> for SparseVectorMut<R>

source§

impl<T: Sized> VectorViewMut<T> for CachedMemoryData<T>

source§

impl<T: ?Sized, V> VectorViewMut<T> for Stride<T, V>
where V: VectorViewMut<T>,

source§

impl<T: ?Sized, V> VectorViewMut<T> for Subvector<T, V>
where V: VectorViewMut<T>,

source§

impl<V1, V2, T: ?Sized> VectorViewMut<T> for Chain<V1, V2, T>
where V1: VectorViewMut<T>, V2: VectorViewMut<T>,

source§

impl<V, F, G, T: ?Sized, U: ?Sized> VectorViewMut<U> for MapMut<V, F, G, T>
where V: VectorViewMut<T>, F: Fn(&T) -> &U, G: Fn(&mut T) -> &mut U,