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")),

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…