[][src]Struct reiterate::CopyReiterate

pub struct CopyReiterate<I> where
    I: Iterator,
    I::Item: Copy
{ /* fields omitted */ }

An adaptor around an iterator over Copy items that can produce multiple iterators sharing an underlying cache.

The underlying iterator must produce Copy values. If your values aren't Copy, please use Reiterator instead.

use reiterate::CopyReiterate;

let x = vec!["a", "b", "c", "d"];
let reiterate = CopyReiterate::new(x);
for i in &reiterate {
    println!("{}", i);    
}

for i in &reiterate {
    // will reuse cached values
    println!("{}", i);
}

Methods

impl<I> CopyReiterate<I> where
    I: Iterator,
    I::Item: Copy
[src]

pub fn new<T>(iter: T) -> Self where
    T: IntoIterator<Item = I::Item, IntoIter = I>, 
[src]

Trait Implementations

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

type IntoIter = CopyReiterator<'a, I>

Which kind of iterator are we turning this into?

type Item = I::Item

The type of the elements being iterated over.

Auto Trait Implementations

impl<I> Send for CopyReiterate<I> where
    I: Send,
    <I as Iterator>::Item: Send

impl<I> !Sync for CopyReiterate<I>

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]