pub fn run<F, Fut, R>(f: F) -> Result<Receiver<R>, DispatchError<F>>where F: FnOnce() -> Fut + 'static + Send, Fut: Future<Output = R> + 'static, R: Send + 'static,