INNER CODE UNIT · Rust
make_request
ilya-zlobintsev/LACT · lact-client/src/lib.rs:85
fn make_request<'a, T: DeserializeOwned>(
&'a self,
request: Request<'a>,
) -> Pin<Box<dyn Future<Output = anyhow::Result<T>> + 'a>> {
Box::pin(async {
let mut stream = self.stream.lock().await;
let request_payload = serde_json::to_string(&request)?;
trace!("sending request {request_payload}");
match stream.request(&request_payload).await {
Ok(response_payload) => {
let response: Response<T> = serde_json::from_str(&response_payload)
.context("Could not deserialize response from daemon")?;
match response {
Response::Ok(data) => Ok(data),
Response::Error(err) => Err(anyhow::Error::new(err)
.context("Got error from daemon, end of client boundary")),