1.0.0[][src]Trait af_lib::iter::__std_iter::IntoIterator

pub trait IntoIterator {
    type Item;
    type IntoIter: Iterator;
#[lang = "into_iter"]    pub fn into_iter(self) -> Self::IntoIter;
}

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 = vec![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()
}

Associated Types

type Item[src]

The type of the elements being iterated over.

type IntoIter: Iterator[src]

Which kind of iterator are we turning this into?

Loading content...

Required methods

#[lang = "into_iter"]pub fn into_iter(self) -> Self::IntoIter[src]

Creates an iterator from a value.

See the module-level documentation for more.

Examples

Basic usage:

let v = vec![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());
Loading content...

Implementations on Foreign Types

impl<T> IntoIterator for Receiver<T>[src]

type Item = T

type IntoIter = IntoIter<T>

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

type Item = T

type IntoIter = Iter<'a, T>

impl<'a, K, V, S> IntoIterator for &'a HashMap<K, V, S>[src]

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

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

impl<'a> IntoIterator for &'a Path[src]

type Item = &'a OsStr

type IntoIter = Iter<'a>

impl<'a> IntoIterator for &'a PathBuf[src]

type Item = &'a OsStr

type IntoIter = Iter<'a>

impl<'a, K, V, S> IntoIterator for &'a mut HashMap<K, V, S>[src]

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

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

impl<'a> IntoIterator for &'a UnixListener[src]

type Item = Result<UnixStream, Error>

type IntoIter = Incoming<'a>

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

type Item = &'a T

type IntoIter = Iter<'a, T>

impl<T, S> IntoIterator for HashSet<T, S>[src]

type Item = T

type IntoIter = IntoIter<T>

pub fn into_iter(self) -> IntoIter<T>

Notable traits for IntoIter<K>

impl<K> Iterator for IntoIter<K> type Item = K;
[src]

Creates a consuming iterator, that is, one that moves each value out of the set in arbitrary order. The set cannot be used after calling this.

Examples

use std::collections::HashSet;
let mut set = HashSet::new();
set.insert("a".to_string());
set.insert("b".to_string());

// Not possible to collect to a Vec<String> with a regular `.iter()`.
let v: Vec<String> = set.into_iter().collect();

// Will print in an arbitrary order.
for x in &v {
    println!("{}", x);
}

impl<K, V, S> IntoIterator for HashMap<K, V, S>[src]

type Item = (K, V)

type IntoIter = IntoIter<K, V>

pub fn into_iter(self) -> IntoIter<K, V>

Notable traits for IntoIter<K, V>

impl<K, V> Iterator for IntoIter<K, V> type Item = (K, V);
[src]

Creates a consuming iterator, that is, one that moves each key-value pair out of the map in arbitrary order. The map cannot be used after calling this.

Examples

use std::collections::HashMap;

let mut map = HashMap::new();
map.insert("a", 1);
map.insert("b", 2);
map.insert("c", 3);

// Not possible with .iter()
let vec: Vec<(&str, i32)> = map.into_iter().collect();

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

type Item = &'a T

type IntoIter = Iter<'a, T>

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

type Item = &'a T

type IntoIter = Iter<'a, T>

impl<T, E> IntoIterator for Result<T, E>[src]

type Item = T

type IntoIter = IntoIter<T>

pub fn into_iter(self) -> IntoIter<T>

Notable traits for IntoIter<T>

impl<T> Iterator for IntoIter<T> type Item = T;
[src]

Returns a consuming iterator over the possibly contained value.

The iterator yields one value if the result is Result::Ok, otherwise none.

Examples

Basic usage:

let x: Result<u32, &str> = Ok(5);
let v: Vec<u32> = x.into_iter().collect();
assert_eq!(v, [5]);

let x: Result<u32, &str> = Err("nothing!");
let v: Vec<u32> = x.into_iter().collect();
assert_eq!(v, []);

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

type Item = &'a mut T

type IntoIter = IterMut<'a, T>

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

type Item = &'a T

type IntoIter = Iter<'a, T>

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

type Item = &'a mut T

type IntoIter = IterMut<'a, T>

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

type Item = &'a mut T

type IntoIter = IterMut<'a, T>

impl<T> IntoIterator for Option<T>[src]

type Item = T

type IntoIter = IntoIter<T>

pub fn into_iter(self) -> IntoIter<T>

Notable traits for IntoIter<A>

impl<A> Iterator for IntoIter<A> type Item = A;
[src]

Returns a consuming iterator over the possibly contained value.

Examples

let x = Some("string");
let v: Vec<&str> = x.into_iter().collect();
assert_eq!(v, ["string"]);

let x = None;
let v: Vec<&str> = x.into_iter().collect();
assert!(v.is_empty());

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

type Item = &'a mut T

type IntoIter = IterMut<'a, T>

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

type Item = &'a T

type IntoIter = Iter<'a, T>

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

type Item = &'a T

type IntoIter = Iter<'a, T>

impl<'a, T, A> IntoIterator for &'a mut Vec<T, A> where
    A: Allocator
[src]

type Item = &'a mut T

type IntoIter = IterMut<'a, T>

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

type Item = &'a mut T

type IntoIter = IterMut<'a, T>

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

type Item = &'a mut T

type IntoIter = IterMut<'a, T>

impl<'a, K, V> IntoIterator for &'a BTreeMap<K, V>[src]

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

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

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

type Item = &'a T

type IntoIter = Iter<'a, T>

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

type Item = &'a T

type IntoIter = Iter<'a, T>

impl<T> IntoIterator for BinaryHeap<T>[src]

type Item = T

type IntoIter = IntoIter<T>

pub fn into_iter(self) -> IntoIter<T>

Notable traits for IntoIter<T>

impl<T> Iterator for IntoIter<T> type Item = T;
[src]

Creates a consuming iterator, that is, one that moves each value out of the binary heap in arbitrary order. The binary heap cannot be used after calling this.

Examples

Basic usage:

use std::collections::BinaryHeap;
let heap = BinaryHeap::from(vec![1, 2, 3, 4]);

// Print 1, 2, 3, 4 in arbitrary order
for x in heap.into_iter() {
    // x has type i32, not &i32
    println!("{}", x);
}

impl<T> IntoIterator for LinkedList<T>[src]

type Item = T

type IntoIter = IntoIter<T>

pub fn into_iter(self) -> IntoIter<T>

Notable traits for IntoIter<T>

impl<T> Iterator for IntoIter<T> type Item = T;
[src]

Consumes the list into an iterator yielding elements by value.

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

type Item = &'a T

type IntoIter = Iter<'a, T>

impl<K, V> IntoIterator for BTreeMap<K, V>[src]

type Item = (K, V)

type IntoIter = IntoIter<K, V>

impl<'a, T, A> IntoIterator for &'a Vec<T, A> where
    A: Allocator
[src]

type Item = &'a T

type IntoIter = Iter<'a, T>

impl<'a, K, V> IntoIterator for &'a mut BTreeMap<K, V>[src]

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

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

impl<T> IntoIterator for VecDeque<T>[src]

type Item = T

type IntoIter = IntoIter<T>

pub fn into_iter(self) -> IntoIter<T>

Notable traits for IntoIter<T>

impl<T> Iterator for IntoIter<T> type Item = T;
[src]

Consumes the VecDeque into a front-to-back iterator yielding elements by value.

impl<T, A> IntoIterator for Vec<T, A> where
    A: Allocator
[src]

type Item = T

type IntoIter = IntoIter<T, A>

pub fn into_iter(self) -> IntoIter<T, A>

Notable traits for IntoIter<T, A>

impl<T, A> Iterator for IntoIter<T, A> where
    A: Allocator
type Item = T;
[src]

Creates a consuming iterator, that is, one that moves each value out of the vector (from start to end). The vector cannot be used after calling this.

Examples

let v = vec!["a".to_string(), "b".to_string()];
for s in v.into_iter() {
    // s has type String, not &String
    println!("{}", s);
}

impl<T> IntoIterator for BTreeSet<T>[src]

type Item = T

type IntoIter = IntoIter<T>

pub fn into_iter(self) -> IntoIter<T>

Notable traits for IntoIter<T>

impl<T> Iterator for IntoIter<T> type Item = T;
[src]

Gets an iterator for moving out the BTreeSet's contents.

Examples

use std::collections::BTreeSet;

let set: BTreeSet<usize> = [1, 2, 3, 4].iter().cloned().collect();

let v: Vec<_> = set.into_iter().collect();
assert_eq!(v, [1, 2, 3, 4]);

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

type IntoIter = IntoIter<A>

type Item = <A as Array>::Item

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

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

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

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

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

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

impl IntoIterator for IndexVec[src]

type Item = usize

type IntoIter = IndexVecIntoIter

pub fn into_iter(self) -> IndexVecIntoIter

Notable traits for IndexVecIntoIter

impl Iterator for IndexVecIntoIter type Item = usize;
[src]

Convert into an iterator over the indices as a sequence of usize values

impl<'a, E> IntoIterator for &'a mut SignalsInfo<E> where
    E: Exfiltrator, 

type Item = <E as Exfiltrator>::Output

type IntoIter = Forever<'a, E>

impl IntoIterator for SetMatches

type IntoIter = SetMatchesIntoIter

type Item = usize

impl<'a> IntoIterator for &'a SetMatches

type IntoIter = SetMatchesIter<'a>

type Item = usize

impl<'a> IntoIterator for &'a SetMatches

type IntoIter = SetMatchesIter<'a>

type Item = usize

impl IntoIterator for SetMatches

type IntoIter = SetMatchesIntoIter

type Item = usize

impl<'a> IntoIterator for &'a Utf8Sequence

type IntoIter = Iter<'a, Utf8Range>

type Item = &'a Utf8Range

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

type Item = T

type IntoIter = IntoIter<T>

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

type Item = &'a mut T

type IntoIter = CachedIterMut<'a, T>

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

type Item = &'a mut T

type IntoIter = IterMut<'a, T>

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

type Item = &'a T

type IntoIter = Iter<'a, T>

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

type Item = T

type IntoIter = CachedIntoIter<T>

impl<'a, K, V, S> IntoIterator for DashMap<K, V, S> where
    S: Clone + BuildHasher,
    K: Eq + Hash

type Item = (K, V)

type IntoIter = OwningIter<K, V, S>

impl<'a, K, S> IntoIterator for DashSet<K, S> where
    S: Clone + BuildHasher,
    K: Eq + Hash

type Item = K

type IntoIter = OwningIter<K, S>

impl<'a, K, V, S> IntoIterator for &'a DashMap<K, V, S> where
    S: Clone + BuildHasher,
    K: Eq + Hash

type Item = RefMulti<'a, K, V, S>

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

impl<'a> IntoIterator for &'a Bytes[src]

type Item = &'a u8

type IntoIter = Iter<'a, u8>

impl IntoIterator for BytesMut[src]

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

type Item = u8

type IntoIter = IntoIter<Chain<T, U>>

impl IntoIterator for Bytes[src]

impl<'a> IntoIterator for &'a BytesMut[src]

type Item = &'a u8

type IntoIter = Iter<'a, u8>

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

type IntoIter = IterMut<'a, T>

type Item = &'a mut T

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

type Item = T

type IntoIter = GenericArrayIter<T, N>

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

type IntoIter = Iter<'a, T>

type Item = &'a T

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

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

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

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

type Item = &'s mut T

type IntoIter = IterMut<'s, T>

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

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

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

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

type Item = <A as Array>::Item

type IntoIter = ArrayVecIterator<A>

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

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

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

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

type Item = <A as Array>::Item

type IntoIter = TinyVecIterator<A>

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

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

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

impl<A> IntoIterator for OrdSet<A> where
    A: Ord + Clone

type Item = A

type IntoIter = ConsumingIter<A>

impl<K, V> IntoIterator for OrdMap<K, V> where
    V: Clone,
    K: Ord + Clone

type Item = (K, V)

type IntoIter = ConsumingIter<(K, V)>

impl<'a, A, S> IntoIterator for &'a HashSet<A, S> where
    A: Hash + Eq,
    S: BuildHasher

type Item = &'a A

type IntoIter = Iter<'a, A>

impl<A> IntoIterator for Vector<A> where
    A: Clone

type Item = A

type IntoIter = ConsumingIter<A>

impl<'a, A> IntoIterator for &'a Vector<A> where
    A: Clone

type Item = &'a A

type IntoIter = Iter<'a, A>

impl<'a, K, V, S> IntoIterator for &'a HashMap<K, V, S> where
    S: BuildHasher,
    K: Hash + Eq

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

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

impl<'a, A> IntoIterator for FocusMut<'a, A> where
    A: Clone + 'a, 

type Item = &'a mut A

type IntoIter = IterMut<'a, A>

impl<'a, K, V> IntoIterator for &'a OrdMap<K, V> where
    K: Ord

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

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

impl<A, S> IntoIterator for HashSet<A, S> where
    A: Hash + Eq + Clone,
    S: BuildHasher

type Item = A

type IntoIter = ConsumingIter<<HashSet<A, S> as IntoIterator>::Item>

impl<'a, A> IntoIterator for &'a OrdSet<A> where
    A: 'a + Ord

type Item = &'a A

type IntoIter = Iter<'a, A>

impl<K, V, S> IntoIterator for HashMap<K, V, S> where
    V: Clone,
    S: BuildHasher,
    K: Hash + Eq + Clone

type Item = (K, V)

type IntoIter = ConsumingIter<(K, V)>

impl<'a, A> IntoIterator for Focus<'a, A> where
    A: Clone + 'a, 

type Item = &'a A

type IntoIter = Iter<'a, A>

impl<'a, A, N> IntoIterator for &'a Chunk<A, N> where
    N: ChunkLength<A>, 

type Item = &'a A

type IntoIter = Iter<'a, A>

impl<'a, A, N> IntoIterator for &'a mut Chunk<A, N> where
    N: ChunkLength<A>, 

type Item = &'a mut A

type IntoIter = IterMut<'a, A>

impl<A, T> IntoIterator for InlineArray<A, T>

type Item = A

type IntoIter = Iter<A, T>

impl<A, N> IntoIterator for SparseChunk<A, N> where
    N: ChunkLength<A> + Bits, 

type Item = A

type IntoIter = Drain<A, N>

impl<'a, A, T> IntoIterator for &'a mut InlineArray<A, T>

type Item = &'a mut A

type IntoIter = IterMut<'a, A>

impl<A, N> IntoIterator for Chunk<A, N> where
    N: ChunkLength<A>, 

type Item = A

type IntoIter = Iter<A, N>

impl<'a, A, T> IntoIterator for &'a InlineArray<A, T>

type Item = &'a A

type IntoIter = Iter<'a, A>

impl<'a, Size> IntoIterator for &'a Bitmap<Size> where
    Size: Bits, 

type Item = usize

type IntoIter = Iter<'a, Size>

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

type Item = (usize, &'a mut T)

type IntoIter = IterMut<'a, T>

impl<T> IntoIterator for Arena<T>

type Item = (usize, T)

type IntoIter = IntoIter<T>

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

type Item = (usize, &'a T)

type IntoIter = Iter<'a, T>

impl<'a> IntoIterator for &'a Events[src]

type Item = &'a Event

type IntoIter = Iter<'a>

impl<'a, T> IntoIterator for &'a mut Stack<T> where
    T: Stackable
[src]

type Item = &'a mut <T as ForeignType>::Ref

type IntoIter = IterMut<'a, T>

impl<'a, T> IntoIterator for &'a mut StackRef<T> where
    T: Stackable
[src]

type Item = &'a mut <T as ForeignType>::Ref

type IntoIter = IterMut<'a, T>

impl<T> IntoIterator for Stack<T> where
    T: Stackable
[src]

type IntoIter = IntoIter<T>

type Item = T

impl<'a, T> IntoIterator for &'a Stack<T> where
    T: Stackable
[src]

type Item = &'a <T as ForeignType>::Ref

type IntoIter = Iter<'a, T>

impl<'a, T> IntoIterator for &'a StackRef<T> where
    T: Stackable
[src]

type Item = &'a <T as ForeignType>::Ref

type IntoIter = Iter<'a, T>

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

type Item = (usize, &'a mut T)

type IntoIter = IterMut<'a, T>

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

type Item = (usize, &'a T)

type IntoIter = Iter<'a, T>

impl<'a, K, V> IntoIterator for &'a Map<K, V>[src]

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

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

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

type Item = &'a T

type IntoIter = Iter<'a, T>

impl<T> IntoIterator for Values<T>

type Item = <Vec<T, Global> as IntoIterator>::Item

type IntoIter = <Vec<T, Global> as IntoIterator>::IntoIter

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

type Item = <&'a mut Vec<T, Global> as IntoIterator>::Item

type IntoIter = <&'a mut Vec<T, Global> as IntoIterator>::IntoIter

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

type Item = <&'a Vec<T, Global> as IntoIterator>::Item

type IntoIter = <&'a Vec<T, Global> as IntoIterator>::IntoIter

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

type Item = (&'a HeaderName, &'a mut T)

type IntoIter = IterMut<'a, T>

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

type Item = (&'a HeaderName, &'a T)

type IntoIter = Iter<'a, T>

impl<'a, T> IntoIterator for OccupiedEntry<'a, T>[src]

type Item = &'a mut T

type IntoIter = ValueIterMut<'a, T>

impl<'a, T> IntoIterator for GetAll<'a, T>[src]

type Item = &'a T

type IntoIter = ValueIter<'a, T>

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

type Item = &'a T

type IntoIter = ValueIter<'a, T>

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

type Item = &'a mut T

type IntoIter = ValueIterMut<'a, T>

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

type Item = &'a T

type IntoIter = ValueIter<'a, T>

impl<T> IntoIterator for HeaderMap<T>[src]

type Item = (Option<HeaderName>, T)

type IntoIter = IntoIter<T>

pub fn into_iter(self) -> IntoIter<T>

Notable traits for IntoIter<T>

impl<T> Iterator for IntoIter<T> type Item = (Option<HeaderName>, T);
[src]

Creates a consuming iterator, that is, one that moves keys and values out of the map in arbitrary order. The map cannot be used after calling this.

For each yielded item that has None provided for the HeaderName, then the associated header name is the same as that of the previously yielded item. The first yielded item will have HeaderName set.

Examples

Basic usage.

let mut map = HeaderMap::new();
map.insert(header::CONTENT_LENGTH, "123".parse().unwrap());
map.insert(header::CONTENT_TYPE, "json".parse().unwrap());

let mut iter = map.into_iter();
assert_eq!(iter.next(), Some((Some(header::CONTENT_LENGTH), "123".parse().unwrap())));
assert_eq!(iter.next(), Some((Some(header::CONTENT_TYPE), "json".parse().unwrap())));
assert!(iter.next().is_none());

Multiple values per key.

let mut map = HeaderMap::new();

map.append(header::CONTENT_LENGTH, "123".parse().unwrap());
map.append(header::CONTENT_LENGTH, "456".parse().unwrap());

map.append(header::CONTENT_TYPE, "json".parse().unwrap());
map.append(header::CONTENT_TYPE, "html".parse().unwrap());
map.append(header::CONTENT_TYPE, "xml".parse().unwrap());

let mut iter = map.into_iter();

assert_eq!(iter.next(), Some((Some(header::CONTENT_LENGTH), "123".parse().unwrap())));
assert_eq!(iter.next(), Some((None, "456".parse().unwrap())));

assert_eq!(iter.next(), Some((Some(header::CONTENT_TYPE), "json".parse().unwrap())));
assert_eq!(iter.next(), Some((None, "html".parse().unwrap())));
assert_eq!(iter.next(), Some((None, "xml".parse().unwrap())));
assert!(iter.next().is_none());

impl IntoIterator for BytesMut[src]

impl IntoIterator for Bytes[src]

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

type Item = u8

type IntoIter = IntoIter<Chain<T, U>>

impl<'a> IntoIterator for &'a Bytes[src]

type Item = &'a u8

type IntoIter = Iter<'a, u8>

impl<'a> IntoIterator for &'a BytesMut[src]

type Item = &'a u8

type IntoIter = Iter<'a, u8>

impl IntoIterator for Events[src]

type Item = Event

type IntoIter = IntoIter

impl<'a> IntoIterator for &'a Events[src]

type Item = Event

type IntoIter = Iter<'a>

impl<'a> IntoIterator for &'a FieldSet[src]

type IntoIter = Iter

type Item = Field

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

type Item = &'a T

type IntoIter = Iter<'a, T>

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

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

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

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

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

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

impl<K, V, S> IntoIterator for IndexMap<K, V, S>[src]

type Item = (K, V)

type IntoIter = IntoIter<K, V>

impl<T, S> IntoIterator for IndexSet<T, S>[src]

type Item = T

type IntoIter = IntoIter<T>

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

type Item = &'a T

type IntoIter = Iter<'a, T>

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

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

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

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

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

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

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

type Item = T

type IntoIter = IntoIter<T>

pub fn into_iter(self) -> IntoIter<T>

Notable traits for IntoIter<K>

impl<K> Iterator for IntoIter<K> type Item = K;

Creates a consuming iterator, that is, one that moves each value out of the set in arbitrary order. The set cannot be used after calling this.

Examples

use hashbrown::HashSet;
let mut set = HashSet::new();
set.insert("a".to_string());
set.insert("b".to_string());

// Not possible to collect to a Vec<String> with a regular `.iter()`.
let v: Vec<String> = set.into_iter().collect();

// Will print in an arbitrary order.
for x in &v {
    println!("{}", x);
}

impl<T> IntoIterator for RawTable<T>

type Item = T

type IntoIter = RawIntoIter<T>

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

type Item = (K, V)

type IntoIter = IntoIter<K, V>

pub fn into_iter(self) -> IntoIter<K, V>

Notable traits for IntoIter<K, V>

impl<K, V> Iterator for IntoIter<K, V> type Item = (K, V);

Creates a consuming iterator, that is, one that moves each key-value pair out of the map in arbitrary order. The map cannot be used after calling this.

Examples

use hashbrown::HashMap;

let mut map = HashMap::new();
map.insert("a", 1);
map.insert("b", 2);
map.insert("c", 3);

// Not possible with .iter()
let vec: Vec<(&str, i32)> = map.into_iter().collect();

impl IntoIterator for MimeGuess

type Item = Mime

type IntoIter = Iter

impl<'a> IntoIterator for &'a MimeGuess

type Item = Mime

type IntoIter = Iter

Loading content...

Implementors

impl IntoIterator for af_lib::prelude::af_core::test::prelude::json::Map<String, Value>[src]

impl<'a> IntoIterator for &'a af_lib::prelude::af_core::test::prelude::json::Map<String, Value>[src]

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

type IntoIter = Iter<'a>

impl<'a> IntoIterator for &'a mut af_lib::prelude::af_core::test::prelude::json::Map<String, Value>[src]

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

type IntoIter = IterMut<'a>

impl<'a, I> IntoIterator for &'a IntoChunks<I> where
    I: Iterator,
    <I as Iterator>::Item: 'a, 
[src]

type Item = Chunk<'a, I>

type IntoIter = Chunks<'a, I>

impl<'a, I> IntoIterator for &'a RcIter<I> where
    I: Iterator
[src]

Return an iterator from &RcIter<I> (by simply cloning it).

type Item = <I as Iterator>::Item

type IntoIter = RcIter<I>

impl<'a, K, I, F> IntoIterator for &'a GroupBy<K, I, F> where
    F: FnMut(&<I as Iterator>::Item) -> K,
    I: Iterator,
    K: PartialEq<K>,
    <I as Iterator>::Item: 'a, 
[src]

type Item = (K, Group<'a, K, I, F>)

type IntoIter = Groups<'a, K, I, F>

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

type IntoIter = I

Loading content...