Struct Cloned

Source
pub struct Cloned<'a, T, C>
where T: Send + Sync + Clone,
{ /* private fields */ }
Expand description

An concurrent iterator, backed with an atomic iterator, that clones the elements of an underlying iterator.

This struct is created by the cloned method on the concurrent iterator.

Trait Implementations§

Source§

impl<'a, T, C> ConcurrentIter for Cloned<'a, T, C>
where T: Send + Sync + Clone, C: ConcurrentIter<Item = &'a T>,

Source§

type BufferedIter = ClonedBufferedChunk<'a, T, <C as ConcurrentIter>::BufferedIter>

Type of the buffered iterator returned by the chunk_iter method when elements are fetched in chunks by each thread.
Source§

fn next_id_and_value(&self) -> Option<Next<Self::Item>>

Advances the iterator and returns the next value together with its enumeration index. Read more
Source§

fn next_chunk( &self, chunk_size: usize, ) -> Option<NextChunk<Self::Item, impl ExactSizeIterator<Item = Self::Item>>>

Advances the iterator chunk_size times and returns an iterator of at most chunk_size consecutive next values. Further, the beginning enumeration index of the yielded values is returned. Read more
Source§

fn into_con_iter_x(self) -> impl ConcurrentIterX<Item = Self::Item>
where Self: Sized,

Converts the ConcurrentIter into a ConcurrentIterX. Read more
Source§

fn ids_and_values(&self) -> ConIterIdsAndValues<'_, Self>
where Self: Sized,

Returns an Iterator over the ids and values of elements of the concurrent iterator. Read more
Source§

fn for_each<Fun: FnMut(Self::Item)>(&self, chunk_size: usize, fun: Fun)
where Self: Sized,

Applies the function fun to each element of the iterator concurrently. Read more
Source§

fn enumerate_for_each<Fun: FnMut(usize, Self::Item)>( &self, chunk_size: usize, fun: Fun, )
where Self: Sized,

Applies the function fun to each index and corresponding element of the iterator concurrently. Read more
Source§

fn buffered_iter( &self, chunk_size: usize, ) -> BufferedIter<'_, Self::Item, Self::BufferedIter>

Creates an iterator which pulls elements from this iterator as chunks of the given chunk_size. Read more
Source§

impl<'a, T, C> ConcurrentIterX for Cloned<'a, T, C>
where T: Send + Sync + Clone, C: ConcurrentIterX<Item = &'a T>,

Source§

type Item = T

Type of the items that the iterator yields.
Source§

type SeqIter = Cloned<<C as ConcurrentIterX>::SeqIter>

Inner type which is the source of the data to be iterated, which in addition is a regular sequential Iterator.
Source§

type BufferedIterX = ClonedBufferedChunk<'a, T, <C as ConcurrentIterX>::BufferedIterX>

Type of the buffered iterator returned by the buffered_iter_x method when elements are fetched in chunks by each thread.
Source§

fn into_seq_iter(self) -> Self::SeqIter

Converts the concurrent iterator back to the original wrapped type which is the source of the elements to be iterated. Already progressed elements are skipped.
Source§

fn next_chunk_x( &self, chunk_size: usize, ) -> Option<impl ExactSizeIterator<Item = Self::Item>>

Advances the iterator chunk_size times and returns an iterator of at most chunk_size consecutive next values. Read more
Source§

fn next(&self) -> Option<Self::Item>

Advances the iterator and returns the next value. Read more
Source§

fn skip_to_end(&self)

Skips all remaining elements of the iterator and assumes that the end of the iterator is reached. Read more
Source§

fn try_get_len(&self) -> Option<usize>

Returns Some of the remaining length of the iterator if it is known; returns None otherwise.
Source§

fn try_get_initial_len(&self) -> Option<usize>

Returns Some of the initial length of the iterator when it was constructed if it is known; returns None otherwise. Read more
Source§

fn values(&self) -> ConIterValuesX<'_, Self>
where Self: Sized,

Returns an Iterator over the values of elements of the concurrent iterator. Read more
Source§

fn for_each_x<Fun: FnMut(Self::Item)>(&self, chunk_size: usize, fun: Fun)
where Self: Sized,

Applies the function fun to each element of the iterator concurrently. Read more
Source§

fn fold<B, Fold>(&self, chunk_size: usize, neutral: B, fold: Fold) -> B
where Fold: FnMut(B, Self::Item) -> B, Self: Sized,

Folds the elements of the iterator pulled concurrently using fold function. Read more
Source§

fn has_more(&self) -> HasMore

Returns whether or not the concurrent iterator has more elements to yield. Read more
Source§

fn buffered_iter_x( &self, chunk_size: usize, ) -> BufferedIter<'_, Self::Item, Self::BufferedIterX>

Creates an iterator which pulls elements from this iterator as chunks of the given chunk_size. Read more
Source§

impl<T, C> Send for Cloned<'_, T, C>
where T: Send + Sync + Clone,

Source§

impl<T, C> Sync for Cloned<'_, T, C>
where T: Send + Sync + Clone,

Auto Trait Implementations§

§

impl<'a, T, C> Freeze for Cloned<'a, T, C>
where C: Freeze,

§

impl<'a, T, C> RefUnwindSafe for Cloned<'a, T, C>

§

impl<'a, T, C> Unpin for Cloned<'a, T, C>
where C: Unpin,

§

impl<'a, T, C> UnwindSafe for Cloned<'a, T, C>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<'a, T, C> IntoCloned<'a, T, C> for C
where T: Send + Sync + Clone + 'a, C: ConcurrentIter<Item = &'a T>,

Source§

fn cloned(self) -> Cloned<'a, T, C>

Converts this concurrent iterator over references into another concurrent iterator yielding clones of the elements.
Source§

impl<'a, T, C> IntoCopied<'a, T, C> for C
where T: Send + Sync + Copy + 'a, C: ConcurrentIter<Item = &'a T>,

Source§

fn copied(self) -> Copied<'a, T, C>

Converts this concurrent iterator over references into another concurrent iterator yielding copies of the elements.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.