fn upsert_inner<G: Scope, O: ExchangeData + Ord, F, Fut, US>(
input: &Collection<G, (UpsertKey, Option<Result<Row, UpsertError>>, O), Diff>,
key_indices: Vec<usize>,
resume_upper: Antichain<G::Timestamp>,
previous: Collection<G, Result<Row, DataflowError>, Diff>,
previous_token: Option<Vec<PressOnDropButton>>,
upsert_metrics: UpsertMetrics,
source_config: RawSourceCreationConfig,
state: F,
upsert_config: UpsertConfig
) -> (Collection<G, Result<Row, DataflowError>, Diff>, Stream<G, (usize, HealthStatusUpdate)>, PressOnDropButton)where
G::Timestamp: TotalOrder,
F: FnOnce() -> Fut + 'static,
Fut: Future<Output = US>,
US: UpsertStateBackend,