Trait timely::dataflow::operators::capture::extract::Extract
[−]
[src]
pub trait Extract<T: Ord, D: Ord> { fn extract(self) -> Vec<(T, Vec<D>)>; }
Supports extracting a sequence of timestamp and data.
Required Methods
fn extract(self) -> Vec<(T, Vec<D>)>
Converts self
into a sequence of timestamped data.
Currently this is only implemented for Receiver<Event<T, D>>
, and is used only
to easily pull data out of a timely dataflow computation once it has completed.
Examples
use std::rc::Rc; use std::sync::{Arc, Mutex}; use timely::dataflow::Scope; use timely::dataflow::operators::{Capture, ToStream, Inspect}; use timely::dataflow::operators::capture::{EventLink, Replay, Extract}; // get send and recv endpoints, wrap send to share let (send, recv) = ::std::sync::mpsc::channel(); let send = Arc::new(Mutex::new(send)); timely::execute(timely::Configuration::Thread, move |worker| { // this is only to validate the output. let send = send.lock().unwrap().clone(); // these are to capture/replay the stream. let handle1 = Rc::new(EventLink::new()); let handle2 = Some(handle1.clone()); worker.dataflow::<u64,_,_>(|scope1| (0..10).to_stream(scope1) .capture_into(handle1) ); worker.dataflow(|scope2| { handle2.replay_into(scope2) .capture_into(send) }); }).unwrap(); assert_eq!(recv.extract()[0].1, (0..10).collect::<Vec<_>>());