pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: https://doc.rust-lang.org/stable/std/iter/../borrow/../clone/../../../std/ops/trait.Index.html

ium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>``).join(""))

Index

Trait Index 

1.0.0 (const: unstable) · Source
pub trait Index<Idx>
where Idx: ?Sized,
{ type Output: ?Sized; // Required method fn index(&self, index: Idx) -> &Self::Output; }
Expand description

Used for indexing operations (container[index]) in immutable contexts.

container[index] is actually syntactic sugar for *container.index(index), but only when used as an immutable value. If a mutable value is requested, IndexMut is used instead. This allows nice things such as let value = v[index] if the type of value implements Copy.

§Examples

The following example implements Index on a read-only NucleotideCount container, enabling individual counts to be retrieved with index syntax.

use std::ops::Index;

enum Nucleotide {
    A,
    C,
    G,
    T,
}

struct NucleotideCount {
    a: usize,
    c: usize,
    g: usize,
    t: usize,
}

impl Index<Nucleotide> for NucleotideCount {
    type Output = usize;

    fn index(&self, nucleotide: Nucleotide) -> &Self::Output {
        match nucleotide {
            Nucleotide::A => &self.a,
            Nucleotide::C => &self.c,
            Nucleotide::G => &self.g,
            Nucleotide::T => &self.t,
        }
    }
}

let nucleotide_count = NucleotideCount {a: 14, c: 9, g: 10, t: 12};
assert_eq!(nucleotide_count[Nucleotide::A], 14);
assert_eq!(nucleotide_count[Nucleotide::C], 9);
assert_eq!(nucleotide_count[Nucleotide::G], 10);
assert_eq!(nucleotide_count[Nucleotide::T], 12);

Required Associated Types§

1.0.0 · Source

type Output: ?Sized

The returned type after indexing.

Required Methods§

1.0.0 · Source

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

Performs the indexing (container[index]) operation.

§Panics

May panic if the index is out of bounds.

Implementors§

Source§

impl Index<usize> for ByteString

Source§

impl Index<Range<usize>> for ByteString

Source§

impl Index<RangeFrom<usize>> for ByteString

1.47.0 · Source§

impl Index<RangeFrom<usize>> for CStr

Source§

impl Index<RangeFull> for ByteString

1.7.0 · Source§

impl Index<RangeFull> for CString

1.0.0 · Source§

impl Index<RangeFull> for OsString

Source§

impl Index<RangeInclusive<usize>> for ByteString

Source§

impl Index<RangeTo<usize>> for ByteString

Source§

impl Index<RangeToInclusive<usize>> for ByteString

1.0.0 (const: unstable) · Source§

impl<I> Index<I> for str
where I: SliceIndex<str>,

Source§

impl<I> Index<I> for ByteStr
where I: SliceIndex<ByteStr>,

1.0.0 · Source§

impl<I> Index<I> for String
where I: SliceIndex<str>,

Source§

impl<I, T, const N: usize> Index<I> for Simd<T, N>

1.0.0 · Source§

impl<K, Q, V, A> Index<&Q> for BTreeMap<K, V, A>
where A: Allocator + Clone, K: Borrow<Q> + Ord, Q: Ord + ?Sized,

1.0.0 · Source§

impl<K, Q, V, S, A> Index<&Q> for HashMap<K, V, S, A>
where K: Eq + Hash + Borrow<Q>, Q: Eq + Hash + ?Sized, S: BuildHasher, A: Allocator,

1.0.0 · Source§

impl<T, A> Index<usize> for VecDeque<T, A>
where A: Allocator,

1.0.0 (const: unstable) · Source§

impl<T, I> Index<I> for [T]
where I: SliceIndex<[T]>,

1.0.0 · Source§

impl<T, I, A> Index<I> for Vec<T, A>
where I: SliceIndex<[T]>, A: Allocator,

1.50.0 (const: unstable) · Source§

impl<T, I, const N: usize> Index<I> for [T; N]
where [T]: Index<I>,

Source§

type Output = <[T] as Index<I>>::Output

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy