rocket::mtls::oid::asn1_rs::nom::lib::std::iter

Trait IntoIterator

1.0.0 · Source
pub trait IntoIterator {
    type Item;
    type IntoIter: Iterator<Item = Self::Item>;

    // Required method
    fn into_iter(self) -> Self::IntoIter;
}
Available on crate feature mtls only.
Expand description

Conversion into an Iterator.

By implementing IntoIterator for a type, you define how it will be converted to an iterator. This is common for types which describe a collection of some kind.

One benefit of implementing IntoIterator is that your type will work with Rust’s for loop syntax.

See also: FromIterator.

§Examples

Basic usage:

let v = [1, 2, 3];
let mut iter = v.into_iter();

assert_eq!(Some(1), iter.next());
assert_eq!(Some(2), iter.next());
assert_eq!(Some(3), iter.next());
assert_eq!(None, iter.next());

Implementing IntoIterator for your type:

// A sample collection, that's just a wrapper over Vec<T>
#[derive(Debug)]
struct MyCollection(Vec<i32>);

// Let's give it some methods so we can create one and add things
// to it.
impl MyCollection {
    fn new() -> MyCollection {
        MyCollection(Vec::new())
    }

    fn add(&mut self, elem: i32) {
        self.0.push(elem);
    }
}

// and we'll implement IntoIterator
impl IntoIterator for MyCollection {
    type Item = i32;
    type IntoIter = std::vec::IntoIter<Self::Item>;

    fn into_iter(self) -> Self::IntoIter {
        self.0.into_iter()
    }
}

// Now we can make a new collection...
let mut c = MyCollection::new();

// ... add some stuff to it ...
c.add(0);
c.add(1);
c.add(2);

// ... and then turn it into an Iterator:
for (i, n) in c.into_iter().enumerate() {
    assert_eq!(i as i32, n);
}

It is common to use IntoIterator as a trait bound. This allows the input collection type to change, so long as it is still an iterator. Additional bounds can be specified by restricting on Item:

fn collect_as_strings<T>(collection: T) -> Vec<String>
where
    T: IntoIterator,
    T::Item: std::fmt::Debug,
{
    collection
        .into_iter()
        .map(|item| format!("{item:?}"))
        .collect()
}

Required Associated Types§

1.0.0 · Source

type Item

The type of the elements being iterated over.

1.0.0 · Source

type IntoIter: Iterator<Item = Self::Item>

Which kind of iterator are we turning this into?

Required Methods§

1.0.0 · Source

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value.

See the module-level documentation for more.

§Examples
let v = [1, 2, 3];
let mut iter = v.into_iter();

assert_eq!(Some(1), iter.next());
assert_eq!(Some(2), iter.next());
assert_eq!(Some(3), iter.next());
assert_eq!(None, iter.next());

Implementors§

Source§

impl IntoIterator for Allow

Source§

impl IntoIterator for IndexVec

§

impl IntoIterator for MediaType

§

impl IntoIterator for QMediaType

Source§

impl IntoIterator for Bytes

Source§

impl IntoIterator for BytesMut

Source§

impl IntoIterator for Error

Source§

impl IntoIterator for CreateFlags

Source§

impl IntoIterator for ReadFlags

Source§

impl IntoIterator for WatchFlags

Source§

impl IntoIterator for Access

Source§

impl IntoIterator for AtFlags

Source§

impl IntoIterator for FallocateFlags

Source§

impl IntoIterator for MemfdFlags

Source§

impl IntoIterator for Mode

Source§

impl IntoIterator for OFlags

Source§

impl IntoIterator for RenameFlags

Source§

impl IntoIterator for ResolveFlags

Source§

impl IntoIterator for SealFlags

Source§

impl IntoIterator for StatVfsMountFlags

Source§

impl IntoIterator for StatxFlags

Source§

impl IntoIterator for DupFlags

Source§

impl IntoIterator for FdFlags

Source§

impl IntoIterator for ReadWriteFlags

Source§

impl IntoIterator for MountFlags

Source§

impl IntoIterator for MountPropagationFlags

Source§

impl IntoIterator for UnmountFlags

Source§

impl IntoIterator for IFlags

Source§

impl IntoIterator for XattrFlags

Source§

impl IntoIterator for serde_json::map::Map<String, Value>

Source§

impl IntoIterator for toml::map::Map<String, Value>

Source§

impl IntoIterator for Array

Source§

impl IntoIterator for ArrayOfTables

Source§

impl IntoIterator for InlineTable

Source§

impl IntoIterator for Table

Source§

impl IntoIterator for Targets

1.10.0 · Source§

impl<'a> IntoIterator for &'a UnixListener

1.6.0 · Source§

impl<'a> IntoIterator for &'a Path

1.6.0 · Source§

impl<'a> IntoIterator for &'a PathBuf

Source§

impl<'a> IntoIterator for &'a Bytes

Source§

type Item = &'a u8

Source§

type IntoIter = Iter<'a, u8>

Source§

impl<'a> IntoIterator for &'a BytesMut

Source§

type Item = &'a u8

Source§

type IntoIter = Iter<'a, u8>

Source§

impl<'a> IntoIterator for &'a Events

Source§

impl<'a> IntoIterator for &'a BorrowedCertRevocationList<'a>

Source§

impl<'a> IntoIterator for &'a DcSupportedVersions

Source§

type Item = &'a u32

Source§

type IntoIter = Iter<'a, u32>

Source§

impl<'a> IntoIterator for &'a serde_json::map::Map<String, Value>

Source§

type Item = (&'a String, &'a Value)

Source§

type IntoIter = Iter<'a>

Source§

impl<'a> IntoIterator for &'a toml::map::Map<String, Value>

Source§

type Item = (&'a String, &'a Value)

Source§

type IntoIter = Iter<'a>

Source§

impl<'a> IntoIterator for &'a FieldSet

Source§

impl<'a> IntoIterator for &'a Targets

Source§

impl<'a> IntoIterator for &'a mut serde_json::map::Map<String, Value>

Source§

type Item = (&'a String, &'a mut Value)

Source§

type IntoIter = IterMut<'a>

Source§

impl<'a> IntoIterator for &'a mut toml::map::Map<String, Value>

Source§

type Item = (&'a String, &'a mut Value)

Source§

type IntoIter = IterMut<'a>

Source§

impl<'a> IntoIterator for BerObject<'a>

Source§

impl<'a> IntoIterator for DcStatelessResetTokens<'a>

Source§

impl<'a> IntoIterator for VersionNegotiation<'a, &'a [u8]>

Source§

impl<'a, 'b, T> IntoIterator for &'b GetAll<'a, T>
where 'b: 'a,

Source§

impl<'a, 'b, T> IntoIterator for &'b OccupiedEntry<'a, T>
where 'b: 'a,

Source§

impl<'a, 'b, T> IntoIterator for &'b mut OccupiedEntry<'a, T>
where 'b: 'a,

Source§

impl<'a, A> IntoIterator for &'a TinyVec<A>
where A: Array,

Source§

type Item = &'a <A as Array>::Item

Source§

type IntoIter = Iter<'a, <A as Array>::Item>

Source§

impl<'a, A> IntoIterator for &'a intrusive_collections::linked_list::LinkedList<A>
where A: Adapter + 'a, <A as Adapter>::LinkOps: LinkedListOps,

Source§

type Item = &'a <<A as Adapter>::PointerOps as PointerOps>::Value

Source§

type IntoIter = Iter<'a, A>

Source§

impl<'a, A> IntoIterator for &'a RBTree<A>
where A: Adapter + 'a, <A as Adapter>::LinkOps: RBTreeOps,

Source§

type Item = &'a <<A as Adapter>::PointerOps as PointerOps>::Value

Source§

type IntoIter = Iter<'a, A>

Source§

impl<'a, A> IntoIterator for &'a SinglyLinkedList<A>
where A: Adapter + 'a, <A as Adapter>::LinkOps: SinglyLinkedListOps,

Source§

type Item = &'a <<A as Adapter>::PointerOps as PointerOps>::Value

Source§

type IntoIter = Iter<'a, A>

Source§

impl<'a, A> IntoIterator for &'a XorLinkedList<A>
where A: Adapter + 'a, <A as Adapter>::LinkOps: XorLinkedListOps,

Source§

type Item = &'a <<A as Adapter>::PointerOps as PointerOps>::Value

Source§

type IntoIter = Iter<'a, A>

Source§

impl<'a, A> IntoIterator for &'a SmallVec<A>
where A: Array,

Source§

type IntoIter = Iter<'a, <A as Array>::Item>

Source§

type Item = &'a <A as Array>::Item

Source§

impl<'a, A> IntoIterator for &'a ArrayVec<A>
where A: Array,

Source§

type Item = &'a <A as Array>::Item

Source§

type IntoIter = Iter<'a, <A as Array>::Item>

Source§

impl<'a, A> IntoIterator for &'a mut TinyVec<A>
where A: Array,

Source§

type Item = &'a mut <A as Array>::Item

Source§

type IntoIter = IterMut<'a, <A as Array>::Item>

Source§

impl<'a, A> IntoIterator for &'a mut SmallVec<A>
where A: Array,

Source§

type IntoIter = IterMut<'a, <A as Array>::Item>

Source§

type Item = &'a mut <A as Array>::Item

Source§

impl<'a, A> IntoIterator for &'a mut ArrayVec<A>
where A: Array,

Source§

type Item = &'a mut <A as Array>::Item

Source§

type IntoIter = IterMut<'a, <A as Array>::Item>

Source§

impl<'a, Fut> IntoIterator for &'a FuturesUnordered<Fut>
where Fut: Unpin,

Source§

impl<'a, Fut> IntoIterator for &'a mut FuturesUnordered<Fut>
where Fut: Unpin,

1.80.0 · Source§

impl<'a, I, A> IntoIterator for &'a Box<[I], A>
where A: Allocator,

1.80.0 · Source§

impl<'a, I, A> IntoIterator for &'a mut Box<[I], A>
where A: Allocator,

Source§

impl<'a, K, V> IntoIterator for &'a indexmap::map::slice::Slice<K, V>

Source§

type IntoIter = Iter<'a, K, V>

Source§

type Item = (&'a K, &'a V)

Source§

impl<'a, K, V> IntoIterator for &'a mut indexmap::map::slice::Slice<K, V>

1.0.0 · Source§

impl<'a, K, V, A> IntoIterator for &'a BTreeMap<K, V, A>
where A: Allocator + Clone,

Source§

type Item = (&'a K, &'a V)

Source§

type IntoIter = Iter<'a, K, V>

1.0.0 · Source§

impl<'a, K, V, A> IntoIterator for &'a mut BTreeMap<K, V, A>
where A: Allocator + Clone,

1.0.0 · Source§

impl<'a, K, V, S> IntoIterator for &'a rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::collections::HashMap<K, V, S>

Source§

type Item = (&'a K, &'a V)

Source§

type IntoIter = Iter<'a, K, V>

Source§

impl<'a, K, V, S> IntoIterator for &'a IndexMap<K, V, S>

Source§

type Item = (&'a K, &'a V)

Source§

type IntoIter = Iter<'a, K, V>

1.0.0 · Source§

impl<'a, K, V, S> IntoIterator for &'a mut rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::collections::HashMap<K, V, S>

Source§

impl<'a, K, V, S> IntoIterator for &'a mut IndexMap<K, V, S>

Source§

impl<'a, K, V, S, A> IntoIterator for &'a hashbrown::map::HashMap<K, V, S, A>
where A: Allocator,

Source§

type Item = (&'a K, &'a V)

Source§

type IntoIter = Iter<'a, K, V>

Source§

impl<'a, K, V, S, A> IntoIterator for &'a mut hashbrown::map::HashMap<K, V, S, A>
where A: Allocator,

Source§

impl<'a, St> IntoIterator for &'a SelectAll<St>
where St: Stream + Unpin,

Source§

impl<'a, St> IntoIterator for &'a mut SelectAll<St>
where St: Stream + Unpin,

1.4.0 · Source§

impl<'a, T> IntoIterator for &'a Option<T>

1.0.0 · Source§

impl<'a, T> IntoIterator for &'a [T]

Source§

impl<'a, T> IntoIterator for &'a std::sync::mpmc::Receiver<T>

Source§

type Item = T

Source§

type IntoIter = Iter<'a, T>

1.1.0 · Source§

impl<'a, T> IntoIterator for &'a std::sync::mpsc::Receiver<T>

Source§

type Item = T

Source§

type IntoIter = Iter<'a, T>

Source§

impl<'a, T> IntoIterator for &'a http::header::map::HeaderMap<T>

Source§

impl<'a, T> IntoIterator for &'a indexmap::set::slice::Slice<T>

Source§

impl<'a, T> IntoIterator for &'a Slab<T>

Source§

impl<'a, T> IntoIterator for &'a ThreadLocal<T>
where T: Send + Sync,

1.4.0 · Source§

impl<'a, T> IntoIterator for &'a mut Option<T>

1.0.0 · Source§

impl<'a, T> IntoIterator for &'a mut [T]

Source§

impl<'a, T> IntoIterator for &'a mut http::header::map::HeaderMap<T>

Source§

impl<'a, T> IntoIterator for &'a mut Slab<T>

Source§

impl<'a, T> IntoIterator for &'a mut CachedThreadLocal<T>
where T: Send + 'a,

Source§

impl<'a, T> IntoIterator for &'a mut ThreadLocal<T>
where T: Send,

Source§

impl<'a, T> IntoIterator for GetAll<'a, T>

Source§

impl<'a, T> IntoIterator for OccupiedEntry<'a, T>

1.0.0 · Source§

impl<'a, T, A> IntoIterator for &'a BinaryHeap<T, A>
where A: Allocator,

1.0.0 · Source§

impl<'a, T, A> IntoIterator for &'a BTreeSet<T, A>
where A: Allocator + Clone,

1.0.0 · Source§

impl<'a, T, A> IntoIterator for &'a rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::collections::linked_list::LinkedList<T, A>
where A: Allocator,

1.0.0 · Source§

impl<'a, T, A> IntoIterator for &'a VecDeque<T, A>
where A: Allocator,

1.0.0 · Source§

impl<'a, T, A> IntoIterator for &'a rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::vec::Vec<T, A>
where A: Allocator,

Source§

impl<'a, T, A> IntoIterator for &'a allocator_api2::stable::vec::Vec<T, A>
where A: Allocator,

Source§

impl<'a, T, A> IntoIterator for &'a HashTable<T, A>
where A: Allocator,

1.0.0 · Source§

impl<'a, T, A> IntoIterator for &'a mut rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::collections::linked_list::LinkedList<T, A>
where A: Allocator,

1.0.0 · Source§

impl<'a, T, A> IntoIterator for &'a mut VecDeque<T, A>
where A: Allocator,

1.0.0 · Source§

impl<'a, T, A> IntoIterator for &'a mut rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::vec::Vec<T, A>
where A: Allocator,

Source§

impl<'a, T, A> IntoIterator for &'a mut allocator_api2::stable::vec::Vec<T, A>
where A: Allocator,

Source§

impl<'a, T, A> IntoIterator for &'a mut HashTable<T, A>
where A: Allocator,

1.4.0 · Source§

impl<'a, T, E> IntoIterator for &'a Result<T, E>

1.4.0 · Source§

impl<'a, T, E> IntoIterator for &'a mut Result<T, E>

Source§

impl<'a, T, N> IntoIterator for &'a GenericArray<T, N>
where T: 'a, N: ArrayLength<T>,

Source§

impl<'a, T, N> IntoIterator for &'a mut GenericArray<T, N>
where T: 'a, N: ArrayLength<T>,

1.0.0 · Source§

impl<'a, T, S> IntoIterator for &'a rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::collections::HashSet<T, S>

Source§

impl<'a, T, S> IntoIterator for &'a IndexSet<T, S>

Source§

impl<'a, T, S, A> IntoIterator for &'a hashbrown::set::HashSet<T, S, A>
where A: Allocator,

1.0.0 · Source§

impl<'a, T, const N: usize> IntoIterator for &'a [T; N]

1.0.0 · Source§

impl<'a, T, const N: usize> IntoIterator for &'a mut [T; N]

§

impl<'h> IntoIterator for rocket::http::HeaderMap<'h>

Consumes self and returns an iterator over all of the Headers stored in the map. Header names are returned in no specific order, but all values for a given header name are grouped together, and values are in FIFO order.

§Example

use rocket::http::{HeaderMap, Header};

// The headers we'll be storing.
let all_headers = vec![
    Header::new("X-Custom", "value_0"),
    Header::new("X-Custom", "value_1"),
    Header::new("X-Other", "other"),
    Header::new("X-Third", "third"),
];

// Create a map, store all of the headers.
let mut map = HeaderMap::new();
for header in all_headers {
    map.add(header)
}

// Ensure there are three headers via the iterator.
assert_eq!(map.iter().count(), 4);

// Actually iterate through them.
let mut custom = 0;
for header in map.into_iter() {
    match header.name().as_str() {
        "X-Other" => assert_eq!(header.value(), "other"),
        "X-Third" => assert_eq!(header.value(), "third"),
        "X-Custom" => {
            assert_eq!(header.value(), format!("value_{custom}"));
            custom += 1;
        },
        _ => unreachable!("there are only three uniquely named headers")
    }
}
§

type Item = Header<'h>

§

type IntoIter = IntoIter<'h>

Source§

impl<'inp, 'out, T> IntoIterator for InOutBuf<'inp, 'out, T>

Source§

type Item = InOut<'inp, 'out, T>

Source§

type IntoIter = InOutBufIter<'inp, 'out, T>

Source§

impl<'s> IntoIterator for &'s Array

Source§

type Item = &'s Value

Source§

type IntoIter = Box<dyn Iterator<Item = &'s Value> + 's>

Source§

impl<'s> IntoIterator for &'s ArrayOfTables

Source§

type Item = &'s Table

Source§

type IntoIter = Box<dyn Iterator<Item = &'s Table> + 's>

Source§

impl<'s> IntoIterator for &'s InlineTable

Source§

type Item = (&'s str, &'s Value)

Source§

type IntoIter = Box<dyn Iterator<Item = (&'s str, &'s Value)> + 's>

Source§

impl<'s> IntoIterator for &'s Table

Source§

type Item = (&'s str, &'s Item)

Source§

type IntoIter = Box<dyn Iterator<Item = (&'s str, &'s Item)> + 's>

Source§

impl<'s, T> IntoIterator for SliceVec<'s, T>

Source§

impl<'v> IntoIterator for Errors<'v>

Source§

impl<A> IntoIterator for TinyVec<A>
where A: Array,

Source§

impl<A> IntoIterator for Range<A>
where A: Step,

Source§

impl<A> IntoIterator for RangeFrom<A>
where A: Step,

Source§

impl<A> IntoIterator for RangeInclusive<A>
where A: Step,

Source§

impl<A> IntoIterator for intrusive_collections::linked_list::LinkedList<A>
where A: Adapter, <A as Adapter>::LinkOps: LinkedListOps,

Source§

impl<A> IntoIterator for RBTree<A>
where A: Adapter, <A as Adapter>::LinkOps: RBTreeOps,

Source§

impl<A> IntoIterator for SinglyLinkedList<A>

Source§

impl<A> IntoIterator for XorLinkedList<A>

Source§

impl<A> IntoIterator for SmallVec<A>
where A: Array,

Source§

impl<A> IntoIterator for ArrayVec<A>
where A: Array,

Source§

impl<Fut> IntoIterator for FuturesUnordered<Fut>
where Fut: Unpin,

Source§

type Item = Fut

Source§

type IntoIter = IntoIter<Fut>

1.0.0 · Source§

impl<I> IntoIterator for I
where I: Iterator,

1.80.0 · Source§

impl<I, A> IntoIterator for Box<[I], A>
where A: Allocator,

Source§

impl<K, V> IntoIterator for Box<Slice<K, V>>

1.0.0 · Source§

impl<K, V, A> IntoIterator for BTreeMap<K, V, A>
where A: Allocator + Clone,

1.0.0 · Source§

impl<K, V, S> IntoIterator for rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::collections::HashMap<K, V, S>

Source§

impl<K, V, S> IntoIterator for IndexMap<K, V, S>

Source§

impl<K, V, S, A> IntoIterator for hashbrown::map::HashMap<K, V, S, A>
where A: Allocator,

Source§

impl<St> IntoIterator for SelectAll<St>
where St: Stream + Unpin,

Source§

impl<T> IntoIterator for &Interval<T>
where T: IntervalBound,

1.0.0 · Source§

impl<T> IntoIterator for Option<T>

Source§

impl<T> IntoIterator for Box<Slice<T>>

Source§

impl<T> IntoIterator for std::sync::mpmc::Receiver<T>

1.1.0 · Source§

impl<T> IntoIterator for std::sync::mpsc::Receiver<T>

Source§

impl<T> IntoIterator for http::header::map::HeaderMap<T>

Source§

impl<T> IntoIterator for Slab<T>

Source§

impl<T> IntoIterator for CachedThreadLocal<T>
where T: Send,

Source§

impl<T> IntoIterator for ThreadLocal<T>
where T: Send,

1.0.0 · Source§

impl<T, A> IntoIterator for BinaryHeap<T, A>
where A: Allocator,

1.0.0 · Source§

impl<T, A> IntoIterator for BTreeSet<T, A>
where A: Allocator + Clone,

1.0.0 · Source§

impl<T, A> IntoIterator for rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::collections::linked_list::LinkedList<T, A>
where A: Allocator,

1.0.0 · Source§

impl<T, A> IntoIterator for VecDeque<T, A>
where A: Allocator,

1.0.0 · Source§

impl<T, A> IntoIterator for rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::vec::Vec<T, A>
where A: Allocator,

Source§

impl<T, A> IntoIterator for allocator_api2::stable::vec::Vec<T, A>
where A: Allocator,

Source§

impl<T, A> IntoIterator for HashTable<T, A>
where A: Allocator,

1.0.0 · Source§

impl<T, E> IntoIterator for Result<T, E>

Source§

impl<T, N> IntoIterator for GenericArray<T, N>
where N: ArrayLength<T>,

1.0.0 · Source§

impl<T, S> IntoIterator for rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::collections::HashSet<T, S>

Source§

impl<T, S> IntoIterator for IndexSet<T, S>

Source§

impl<T, S, A> IntoIterator for hashbrown::set::HashSet<T, S, A>
where A: Allocator,

Source§

impl<T, U> IntoIterator for Chain<T, U>
where T: Buf, U: Buf,

1.53.0 · Source§

impl<T, const N: usize> IntoIterator for [T; N]