Function mz_storage_client::source::util::async_source
source · pub fn async_source<G, D, B, L>(
scope: &G,
name: String,
input: &Stream<G, ()>,
construct: B
) -> (Stream<G, D>, Rc<dyn Any>)where
G: Scope<Timestamp = Timestamp>,
D: Data,
B: FnOnce(OperatorInfo, CapabilitySet<Timestamp>, AsyncInputHandle<Timestamp, Vec<()>, <Pipeline as ParallelizationContractCore<G::Timestamp, Vec<()>>>::Puller>, OutputWrapper<G::Timestamp, Vec<D>, TeeCore<G::Timestamp, Vec<D>>>) -> L,
L: Future + 'static,
Expand description
Effectively the same as source
, but the core logic expects a
never-ending future, not a tick closure. Additionally, this
operator also contains an input, primarily to inspect the
frontier of an upstream operator. This input
does not participate in progress tracking.
Note that this means the input and capabilities are communicated to the future by value, not by &mut reference.
Returns a token, which, upon drop, will cause the shutdown of the operator.