pub struct IteratorSource<It>{ /* private fields */ }Expand description
Source that consumes an iterator and emits all its elements into the stream.
The iterator will be consumed only from one replica, therefore this source is not parallel.
Implementations§
Source§impl<It> IteratorSource<It>
impl<It> IteratorSource<It>
Sourcepub fn new(inner: It) -> Self
pub fn new(inner: It) -> Self
Create a new source that reads the items from the iterator provided as input.
Note: this source is not parallel, the iterator will be consumed only on a single
replica, on all the others no item will be read from the iterator. If you want to achieve
parallelism you need to add an operator that shuffles the data (e.g.
Stream::shuffle).
§Example
let source = IteratorSource::new((0..5));
let s = env.stream(source);Trait Implementations§
Source§impl<It> Clone for IteratorSource<It>
impl<It> Clone for IteratorSource<It>
Source§impl<It> Debug for IteratorSource<It>
impl<It> Debug for IteratorSource<It>
Source§impl<It> Display for IteratorSource<It>
impl<It> Display for IteratorSource<It>
Source§impl<It> Operator for IteratorSource<It>
impl<It> Operator for IteratorSource<It>
type Out = <It as Iterator>::Item
Source§fn setup(&mut self, _metadata: &mut ExecutionMetadata<'_>)
fn setup(&mut self, _metadata: &mut ExecutionMetadata<'_>)
Setup the operator chain. This is called before any call to
next and it’s used to
initialize the operator. When it’s called the operator has already been cloned and it will
never be cloned again. Therefore it’s safe to store replica-specific metadata inside of it. Read moreSource§fn next(&mut self) -> StreamElement<Self::Out>
fn next(&mut self) -> StreamElement<Self::Out>
Take a value from the previous operator, process it and return it.
Source§fn structure(&self) -> BlockStructure
fn structure(&self) -> BlockStructure
A more refined representation of the operator and its predecessors.
Source§impl<It> Source for IteratorSource<It>
impl<It> Source for IteratorSource<It>
Source§fn replication(&self) -> Replication
fn replication(&self) -> Replication
The maximum parallelism offered by this operator.
Auto Trait Implementations§
impl<It> Freeze for IteratorSource<It>where
It: Freeze,
impl<It> RefUnwindSafe for IteratorSource<It>where
It: RefUnwindSafe,
impl<It> Send for IteratorSource<It>
impl<It> Sync for IteratorSource<It>where
It: Sync,
impl<It> Unpin for IteratorSource<It>where
It: Unpin,
impl<It> UnwindSafe for IteratorSource<It>where
It: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneDebuggableStorage for Twhere
T: DebuggableStorage + Clone,
impl<T> CloneDebuggableStorage for Twhere
T: DebuggableStorage + Clone,
fn clone_storage(&self) -> Box<dyn CloneDebuggableStorage>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CloneableStorage for T
impl<T> CloneableStorage for T
fn clone_storage(&self) -> Box<dyn CloneableStorage>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more