IteratorSource

Struct IteratorSource 

Source
pub struct IteratorSource<It>
where It: Iterator + Send + 'static, It::Item: Send,
{ /* 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>
where It: Iterator + Send + 'static, It::Item: Send,

Source

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>
where It: Iterator + Send + 'static, It::Item: Send,

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<It> Debug for IteratorSource<It>
where It: Iterator + Send + 'static, It::Item: Send,

Source§

fn fmt(&self, __f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<It> Display for IteratorSource<It>
where It: Iterator + Send + 'static, It::Item: Send,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<It> Operator for IteratorSource<It>
where It: Iterator + Send + 'static, It::Item: Send,

Source§

type Out = <It as Iterator>::Item

Source§

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 more
Source§

fn next(&mut self) -> StreamElement<Self::Out>

Take a value from the previous operator, process it and return it.
Source§

fn structure(&self) -> BlockStructure

A more refined representation of the operator and its predecessors.
Source§

impl<It> Source for IteratorSource<It>
where It: Iterator + Send + 'static, It::Item: Send,

Source§

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> 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> CloneDebuggableStorage for T

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> CloneableStorage for T
where T: Any + Send + Sync + Clone,

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<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.
Source§

impl<T> Data for T
where T: Clone + Send + 'static,

Source§

impl<T> DebuggableStorage for T
where T: Any + Send + Sync + Debug,