Trait std::ops::IndexMut
[−]
[src]
pub trait IndexMut<Idx>: Index<Idx> where Idx: ?Sized {
fn index_mut(&mut self, index: Idx) -> &mut Self::Output;
}The IndexMut trait is used to specify the functionality of indexing
operations like arr[idx], when used in a mutable context.
Examples
A trivial implementation of IndexMut. When Foo[Bar] happens, it ends up
calling index_mut, and therefore, main prints Indexing!.
use std::ops::{Index, IndexMut}; #[derive(Copy, Clone)] struct Foo; struct Bar; impl Index<Bar> for Foo { type Output = Foo; fn index<'a>(&'a self, _index: Bar) -> &'a Foo { self } } impl IndexMut<Bar> for Foo { fn index_mut<'a>(&'a mut self, _index: Bar) -> &'a mut Foo { println!("Indexing!"); self } } fn main() { &mut Foo[Bar]; }
Required Methods
fn index_mut(&mut self, index: Idx) -> &mut Self::Output
The method for the indexing (Foo[Bar]) operation
Implementors
impl<T> IndexMut for [T]impl<T> IndexMut for [T]impl<T> IndexMut for [T]impl<T> IndexMut for [T]impl<T> IndexMut for [T]impl<T> IndexMut for [T]impl<T> IndexMut for [T]impl IndexMut for strimpl IndexMut for strimpl IndexMut for strimpl IndexMut for strimpl IndexMut for strimpl IndexMut for strimpl IndexMut for Stringimpl IndexMut for Stringimpl IndexMut for Stringimpl IndexMut for Stringimpl IndexMut for Stringimpl IndexMut for Stringimpl<T> IndexMut for Vec<T>impl<T> IndexMut for Vec<T>impl<T> IndexMut for Vec<T>impl<T> IndexMut for Vec<T>impl<T> IndexMut for Vec<T>impl<T> IndexMut for Vec<T>impl<T> IndexMut for Vec<T>impl<A> IndexMut for VecDeque<A>