use gloo_net::http::Response; use serde::de::DeserializeOwned; pub async fn ok_json(response: Response) -> Result where T: DeserializeOwned { if !response.ok() { anyhow::bail!("Request failed: {} {}", response.status(), response.status_text()); } Ok(response.json().await?) }