pub trait FromRes<Encoding, Response, CustErr>where
Self: Sized,{
// Required method
fn from_res(
res: Response
) -> impl Future<Output = Result<Self, ServerFnError<CustErr>>> + Send;
}Expand description
Deserializes the data type from an HTTP response.
Implementations use the methods of the ClientRes trait to extract
data from a response. They are often quite short, usually consisting
of just two steps:
- Extracting a
String,Bytes, or aStreamfrom the response body. - Deserializing the data type from that value.
For example, here’s the implementation for Json.
ⓘ
impl<CustErr, T, Response> FromRes<Json, Response, CustErr> for T
where
Response: ClientRes<CustErr> + Send,
T: DeserializeOwned + Send,
{
async fn from_res(
res: Response,
) -> Result<Self, ServerFnError<CustErr>> {
// extracts the request body
let data = res.try_into_string().await?;
// and tries to deserialize it as JSON
serde_json::from_str(&data)
.map_err(|e| ServerFnError::Deserialization(e.to_string()))
}
}Required Methods§
Object Safety§
This trait is not object safe.