Trait core::ops::Index
[−]
[src]
pub trait Index<Idx: ?Sized> { type Output: ?Sized; fn index<'a>(&'a self, index: Idx) -> &'a Self::Output; }
The Index
`Indextrait 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 an immutable context.
Examples
A trivial implementation of Index
`Index. When
`. When Foo[Bar]
`Foo[Bar]happens, it ends up calling
` happens, it ends up
calling index
`index, and therefore,
`, and therefore, main
`mainprints
` prints Indexing!
`Indexing!`.
use std::ops::Index; #[derive(Copy, Clone)] struct Foo; struct Bar; impl Index<Bar> for Foo { type Output = Foo; fn index<'a>(&'a self, _index: Bar) -> &'a Foo { println!("Indexing!"); self } } fn main() { Foo[Bar]; }
Associated Types
type Output: ?Sized
The returned type after indexing
Required Methods
fn index<'a>(&'a self, index: Idx) -> &'a Self::Output
The method for the indexing (Foo[Bar]
`Foo[Bar]`) operation
Implementors
impl<T> Index<usize> for [T]
impl<T> Index<Range<usize>> for [T]
impl<T> Index<RangeTo<usize>> for [T]
impl<T> Index<RangeFrom<usize>> for [T]
impl<T> Index<RangeFull> for [T]
impl Index<Range<usize>> for str
impl Index<RangeTo<usize>> for str
impl Index<RangeFrom<usize>> for str
impl Index<RangeFull> for str