@@ -55,7 +55,7 @@ impl Transport {
5555 server_stdin: Box<dyn AsyncWrite + Unpin + Send>,
5656 server_stderr: Option<Box<dyn AsyncBufRead + Unpin + Send>>,
5757 id: usize,
58− ) -> (UnboundedReceiver<Payload>, UnboundedSender<Request>) {
58+ ) -> (UnboundedReceiver<Payload>, UnboundedSender<Payload>) {
5959 let (client_tx, rx) = unbounded_channel();
6060 let (tx, client_rx) = unbounded_channel();
6161
@@ -140,14 +140,14 @@ impl Transport {
140140 async fn send_payload_to_server(
141141 &self,
142142 server_stdin: &mut Box<dyn AsyncWrite + Unpin + Send>,
143− mut req: Request,
143+ mut payload: Payload,
144144 ) -> Result<()> {
145− let back_ch = req.back_ch.take();
146− let seq = req.seq;
147− let json = serde_json::to_string(&Payload::Request(req))?;
148− if let Some(back) = back_ch {
149− self.pending_requests.lock().await.insert(seq, back);
145+ if let Payload::Request(request) = &mut payload {
146+ if let Some(back) = request.back_ch.take() {
147+ self.pending_requests.lock().await.insert(request.seq, back);
148+ }
150149 }
150+ let json = serde_json::to_string(&payload)?;
151151 self.send_string_to_server(server_stdin, json).await
152152 }
153153
@@ -254,11 +254,11 @@ impl Transport {
254254 async fn send(
255255 transport: Arc<Self>,
256256 mut server_stdin: Box<dyn AsyncWrite + Unpin + Send>,
257− mut client_rx: UnboundedReceiver<Request>,
257+ mut client_rx: UnboundedReceiver<Payload>,
258258 ) {
259− while let Some(req) = client_rx.recv().await {
259+ while let Some(payload) = client_rx.recv().await {
260260 transport
261− .send_payload_to_server(&mut server_stdin, req)
261+ .send_payload_to_server(&mut server_stdin, payload)
262262 .await
263263 .unwrap()
264264 }