Trait core::ops::IndexMut
[−]
[src]
pub trait IndexMut<Idx: ?Sized>: Index<Idx> { fn index_mut<'a>(&'a mut self, index: Idx) -> &'a mut Self::Output; }
The IndexMut
`IndexMuttrait is used to specify the functionality of indexing operations like
` trait is used to specify the functionality of indexing
operations like arr[idx]
`arr[idx]`, when used in a mutable context.
Examples
A trivial implementation of IndexMut
`IndexMut. When
`. When Foo[Bar]
`Foo[Bar]happens, it ends up calling
` happens, it ends up
calling index_mut
`index_mut, and therefore,
`, and therefore, main
`mainprints
` prints Indexing!
`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<'a>(&'a mut self, index: Idx) -> &'a mut Self::Output
The method for the indexing (Foo[Bar]
`Foo[Bar]`) operation