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 IndexMut<RangeToInclusive<usize>> for strimpl IndexMut<RangeInclusive<usize>> for strimpl IndexMut<RangeFull> for strimpl IndexMut<RangeFrom<usize>> for strimpl IndexMut<RangeTo<usize>> for strimpl IndexMut<Range<usize>> for strimpl<T> IndexMut<RangeToInclusive<usize>> for [T]impl<T> IndexMut<RangeInclusive<usize>> for [T]impl<T> IndexMut<RangeFull> for [T]impl<T> IndexMut<RangeFrom<usize>> for [T]impl<T> IndexMut<RangeTo<usize>> for [T]impl<T> IndexMut<Range<usize>> for [T]impl<T> IndexMut<usize> for [T]impl IndexMut<RangeToInclusive<usize>> for Stringimpl IndexMut<RangeInclusive<usize>> for Stringimpl IndexMut<RangeFull> for Stringimpl IndexMut<RangeFrom<usize>> for Stringimpl IndexMut<RangeTo<usize>> for Stringimpl IndexMut<Range<usize>> for Stringimpl<T> IndexMut<RangeToInclusive<usize>> for Vec<T>impl<T> IndexMut<RangeInclusive<usize>> for Vec<T>impl<T> IndexMut<RangeFull> for Vec<T>impl<T> IndexMut<RangeFrom<usize>> for Vec<T>impl<T> IndexMut<RangeTo<usize>> for Vec<T>impl<T> IndexMut<Range<usize>> for Vec<T>impl<T> IndexMut<usize> for Vec<T>impl<A> IndexMut<usize> for VecDeque<A>