devela::_dep::rayon::iter::plumbing

Trait UnindexedProducer

pub trait UnindexedProducer: Sized + Send {
    type Item;

    // Required methods
    fn split(self) -> (Self, Option<Self>) ;
    fn fold_with<F>(self, folder: F) -> F
       where F: Folder<Self::Item>;
}
Available on crate feature dep_rayon only.
Expand description

A variant on Producer which does not know its exact length or cannot represent it in a usize. These producers act like ordinary producers except that they cannot be told to split at a particular point. Instead, you just ask them to split ‘somewhere’.

(In principle, Producer could extend this trait; however, it does not because to do so would require producers to carry their own length with them.)

Required Associated Types§

type Item

The type of item returned by this producer.

Required Methods§

fn split(self) -> (Self, Option<Self>)

Split midway into a new producer if possible, otherwise return None.

fn fold_with<F>(self, folder: F) -> F
where F: Folder<Self::Item>,

Iterate the producer, feeding each element to folder, and stop when the folder is full (or all elements have been consumed).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§