@@ -55,7 +55,7 @@ impl Transport {
55 server_stdin: Box<dyn AsyncWrite + Unpin + Send>,
55 server_stdin: Box<dyn AsyncWrite + Unpin + Send>,
56 server_stderr: Option<Box<dyn AsyncBufRead + Unpin + Send>>,
56 server_stderr: Option<Box<dyn AsyncBufRead + Unpin + Send>>,
57 id: usize,
57 id: usize,
58− ) -> (UnboundedReceiver<Payload>, UnboundedSender<Request>) {
58+ ) -> (UnboundedReceiver<Payload>, UnboundedSender<Payload>) {
59 let (client_tx, rx) = unbounded_channel();
59 let (client_tx, rx) = unbounded_channel();
60 let (tx, client_rx) = unbounded_channel();
60 let (tx, client_rx) = unbounded_channel();
@@ -140,14 +140,14 @@ impl Transport {
140 async fn send_payload_to_server(
140 async fn send_payload_to_server(
142 server_stdin: &mut Box<dyn AsyncWrite + Unpin + Send>,
142 server_stdin: &mut Box<dyn AsyncWrite + Unpin + Send>,
143− mut req: Request,
143+ mut payload: Payload,
144 ) -> Result<()> {
144 ) -> Result<()> {
145− let back_ch = req.back_ch.take();
147− let json = serde_json::to_string(&Payload::Request(req))?;
145+ if let Payload::Request(request) = &mut payload {
148− if let Some(back) = back_ch {
146+ if let Some(back) = request.back_ch.take() {
149− self.pending_requests.lock().await.insert(seq, back);
147+ self.pending_requests.lock().await.insert(request.seq, back);
150+ let json = serde_json::to_string(&payload)?;
151 self.send_string_to_server(server_stdin, json).await
151 self.send_string_to_server(server_stdin, json).await
@@ -254,11 +254,11 @@ impl Transport {
254 async fn send(
254 async fn send(
255 transport: Arc<Self>,
255 transport: Arc<Self>,
256 mut server_stdin: Box<dyn AsyncWrite + Unpin + Send>,
256 mut server_stdin: Box<dyn AsyncWrite + Unpin + Send>,
257− mut client_rx: UnboundedReceiver<Request>,
257+ mut client_rx: UnboundedReceiver<Payload>,
259− while let Some(req) = client_rx.recv().await {
259+ while let Some(payload) = client_rx.recv().await {
260 transport
260 transport
261− .send_payload_to_server(&mut server_stdin, req)
261+ .send_payload_to_server(&mut server_stdin, payload)
263 .unwrap()
263 .unwrap()