Function mz_storage::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>, AsyncSourceToken)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 an AsyncSourceToken
, which, upon drop, will cause the
shutdown of the operator.