[−][src]Trait asparit::Producer
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.)
Associated Types
type Item
The type of item returned by this producer.
type IntoIter: Iterator<Item = Self::Item>
The type of iterator we will become.
Required methods
pub fn into_iter(self) -> Self::IntoIter
Convert self
into an iterator; at this point, no more parallel splits
are possible.
pub fn split(self) -> (Self, Option<Self>)
Split midway into a new producer if possible, otherwise return None
.
Provided methods
pub fn fold_with<F>(self, folder: F) -> F where
F: Folder<Self::Item>,
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).
The provided implementation is sufficient for most iterables.