flipt/util/
mod.rs

1use crate::error::UpstreamError;
2
3pub async fn deserialize<T: serde::de::DeserializeOwned>(
4    resp: reqwest::Response,
5) -> Result<T, UpstreamError> {
6    if resp.status().is_success() {
7        match resp.json::<T>().await {
8            Ok(t) => {
9                return Ok(t);
10            }
11            Err(err) => {
12                return Err(UpstreamError::default_with_message(err.to_string()));
13            }
14        }
15    }
16
17    match resp.json::<UpstreamError>().await {
18        Ok(ue) => Err(ue),
19        Err(err) => Err(UpstreamError::default_with_message(err.to_string())),
20    }
21}