Trait std::ops::IndexStable
[-] [+]
[src]
pub trait Index<Idx> where Idx: ?Sized {
type Output;
fn index(&'a self, index: &Idx) -> &'a <Self as Index<Idx>>::Output;
}
The Index
trait is used to specify the functionality of indexing operations
like arr[idx]
when used in an immutable context.
Example
A trivial implementation of Index
. When Foo[Bar]
happens, it ends up
calling index
, and therefore, main
prints Indexing!
.
use std::ops::Index; #[derive(Copy)] 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
Required Methods
fn index(&'a self, index: &Idx) -> &'a <Self as Index<Idx>>::Output
The method for the indexing (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<'a, T> Index<Range<usize>> for Iter<'a, T>
impl<'a, T> Index<RangeTo<usize>> for Iter<'a, T>
impl<'a, T> Index<RangeFrom<usize>> for Iter<'a, T>
impl<'a, T> Index<RangeFull> for Iter<'a, T>
impl<'a, T> Index<Range<usize>> for IterMut<'a, T>
impl<'a, T> Index<RangeTo<usize>> for IterMut<'a, T>
impl<'a, T> Index<RangeFrom<usize>> for IterMut<'a, T>
impl<'a, T> Index<RangeFull> for IterMut<'a, T>
impl Index<Range<usize>> for str
impl Index<RangeTo<usize>> for str
impl Index<RangeFrom<usize>> for str
impl Index<RangeFull> for str
impl Index<usize> for BitVec
impl<K, Q, V> Index<Q> for BTreeMap<K, V> where K: Ord, K: Borrow<Q>, Q: Ord, Q: ?Sized
impl<A> Index<usize> for VecDeque<A>
impl Index<Range<usize>> for String
impl Index<RangeTo<usize>> for String
impl Index<RangeFrom<usize>> for String
impl Index<RangeFull> for String
impl<T> Index<usize> for Vec<T>
impl<T> Index<Range<usize>> for Vec<T>
impl<T> Index<RangeTo<usize>> for Vec<T>
impl<T> Index<RangeFrom<usize>> for Vec<T>
impl<T> Index<RangeFull> for Vec<T>
impl<V> Index<usize> for VecMap<V>
impl Index<RangeFull> for OsString
impl<K, Q: ?Sized, V, S> Index<Q> for HashMap<K, V, S> where K: Eq + Hash + Borrow<Q>, Q: Eq + Hash, S: HashState
impl<K, Q: ?Sized, V, S> Index<Q> for HashMap<K, V, S> where K: Eq + Hash + Borrow<Q>, Q: Eq + Hash, S: HashState