pub async fn run_loop<P, Fut, R>( rx: UnboundedReceiver<()>, config: AutoSyncConfig, push: P, report: R, )where P: FnMut() -> Fut, Fut: Future<Output = Result<PushOutcome, String>>, R: FnMut(String),