Trait std::ops::Index
[−]
[src]
pub trait Index<Idx> where Idx: ?Sized {
type Output: ?Sized;
fn index(&self, index: Idx) -> &Self::Output;
}
The Index
trait is used to specify the functionality of indexing operations
like arr[idx]
when used in an immutable context.
Examples
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, 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
Required Methods
Implementors
impl Index for str
impl Index for str
impl Index for str
impl Index for str
impl Index for str
impl Index for str
impl<T> Index for [T]
impl<T> Index for [T]
impl<T> Index for [T]
impl<T> Index for [T]
impl<T> Index for [T]
impl<T> Index for [T]
impl<T> Index for [T]
impl Index for String
impl Index for String
impl Index for String
impl Index for String
impl Index for String
impl Index for String
impl<T> Index for Vec<T>
impl<T> Index for Vec<T>
impl<T> Index for Vec<T>
impl<T> Index for Vec<T>
impl<T> Index for Vec<T>
impl<T> Index for Vec<T>
impl<T> Index for Vec<T>
impl<'a, K, Q, V> Index for BTreeMap<K, V> where Q: Ord + ?Sized, K: Ord + Borrow<Q>
impl<A> Index for VecDeque<A>
impl<'a, K, Q: ?Sized, V, S> Index for HashMap<K, V, S> where K: Eq + Hash + Borrow<Q>, Q: Eq + Hash, S: BuildHasher
impl Index for CString
impl Index for OsString