Trait FromRes
pub trait FromRes<Encoding, Response, E>: Sized {
// Required method
fn from_res(res: Response) -> impl Future<Output = Result<Self, E>> + 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 aStream
from the response body. - Deserializing the data type from that value.
For example, here’s the implementation for Json
.
ⓘ
impl<E, T, Response> FromRes<Json, Response, E> for T
where
Response: ClientRes<E> + Send,
T: DeserializeOwned + Send,
E: FromServerFnError,
{
async fn from_res(
res: Response,
) -> Result<Self, E> {
// 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| ServerFnErrorErr::Deserialization(e.to_string()).into_app_error())
}
}
Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.