Trait timely::dataflow::operators::feedback::LoopVariable[][src]

pub trait LoopVariable<'a, G: Scope, T: Timestamp> {
    fn loop_variable<D: Data>(
        &mut self,
        summary: T::Summary
    ) -> (Handle<Iterative<'a, G, T>, D>, Stream<Iterative<'a, G, T>, D>); }

Creates a Stream and a Handle to later bind the source of that Stream.

Required methods

fn loop_variable<D: Data>(
    &mut self,
    summary: T::Summary
) -> (Handle<Iterative<'a, G, T>, D>, Stream<Iterative<'a, G, T>, D>)
[src]

Creates a Stream and a Handle to later bind the source of that Stream.

The resulting Stream will have its data defined by a future call to connect_loop with its Handle passed as an argument. Data passed through the stream will have their timestamps advanced by summary, and will be dropped if the result exceeds limit.

Examples

use timely::dataflow::Scope;
use timely::dataflow::operators::{LoopVariable, ConnectLoop, ToStream, Concat, Inspect, BranchWhen};

timely::example(|scope| {
    // circulate 0..10 for 100 iterations.
    scope.iterative::<usize,_,_>(|inner| {
        let (handle, cycle) = inner.loop_variable(1);
        (0..10).to_stream(inner)
               .concat(&cycle)
               .inspect(|x| println!("seen: {:?}", x))
               .branch_when(|t| t.inner < 100).1
               .connect_loop(handle);
    });
});
Loading content...

Implementors

impl<'a, G: Scope, T: Timestamp> LoopVariable<'a, G, T> for Iterative<'a, G, T>[src]

Loading content...