# Trait bitflags::__core::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

### `type Output: ?Sized`

The returned type after indexing

## Required Methods

### `fn index(&self, index: Idx) -> &Self::Output`

The method for the indexing (`Foo[Bar]`) operation

## Implementors

- `impl<'a, K, Q, V, S> Index for HashMap<K, V, S> where Q: Eq + Hash + ?Sized, S: BuildHasher, K: Eq + Hash + Borrow<Q>`
- `impl<A> Index for VecDeque<A>`
- `impl Index for CString`
- `impl Index for OsString`
- `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 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 [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 str`
- `impl Index for str`
- `impl Index for str`
- `impl Index for str`
- `impl Index for str`
- `impl Index for str`
- `impl<'a, K, Q, V> Index for BTreeMap<K, V> where Q: Ord + ?Sized, K: Ord + Borrow<Q>`

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)