Avoid cloning a request on send

This commit is contained in:
Blaž Hrastnik 2021-08-16 14:08:21 +09:00
parent 54dc2f8107
commit 0300dbdeb3

View file

@ -127,11 +127,13 @@ impl Transport {
async fn send_payload_to_server(
&self,
server_stdin: &mut Box<dyn AsyncWrite + Unpin + Send>,
req: Request,
mut req: Request,
) -> Result<()> {
let json = serde_json::to_string(&Payload::Request(req.clone()))?;
if let Some(back) = req.back_ch {
self.pending_requests.lock().await.insert(req.seq, back);
let back_ch = req.back_ch.take();
let seq = req.seq;
let json = serde_json::to_string(&Payload::Request(req))?;
if let Some(back) = back_ch {
self.pending_requests.lock().await.insert(seq, back);
}
self.send_string_to_server(server_stdin, json).await
}