diff --git a/timely/src/dataflow/operators/concat.rs b/timely/src/dataflow/operators/concat.rs index 9bd98e8a2..db5e0182a 100644 --- a/timely/src/dataflow/operators/concat.rs +++ b/timely/src/dataflow/operators/concat.rs @@ -47,11 +47,26 @@ pub trait Concatenate { /// .inspect(|x| println!("seen: {:?}", x)); /// }); /// ``` - fn concatenate(&self, _: impl IntoIterator>) -> Stream; + fn concatenate(&self, sources: I) -> Stream + where + I: IntoIterator>; +} + +impl Concatenate for Stream { + fn concatenate(&self, sources: I) -> Stream + where + I: IntoIterator> + { + let clone = self.clone(); + self.scope().concatenate(Some(clone).into_iter().chain(sources)) + } } impl Concatenate for G { - fn concatenate(&self, sources: impl IntoIterator>) -> Stream { + fn concatenate(&self, sources: I) -> Stream + where + I: IntoIterator> + { // create an operator builder. use crate::dataflow::operators::generic::builder_rc::OperatorBuilder;