pub fn stdio_transport<W, R, Req1, Notif1, Resp1, Req2, Notif2, Resp2>(
writer: W,
writer_receiver: Receiver<RpcMessage<Req2, Notif2, Resp2>>,
reader: R,
reader_sender: Sender<RpcMessage<Req1, Notif1, Resp1>>,
)where
W: 'static + Write + Send,
R: 'static + BufRead + Send,
Req1: 'static + Serialize + DeserializeOwned + Send + Sync,
Notif1: 'static + Serialize + DeserializeOwned + Send + Sync,
Resp1: 'static + Serialize + DeserializeOwned + Send + Sync,
Req2: 'static + Serialize + DeserializeOwned + Send + Sync,
Notif2: 'static + Serialize + DeserializeOwned + Send + Sync,
Resp2: 'static + Serialize + DeserializeOwned + Send + Sync,