pub async fn run_frontend<F, O>(frontend: F) -> Result<(), Error>where F: Frontend<O>, O: DeserializeOwned,