@@ -30,7 +30,7 @@ use crate::{
3030pub mod msg;
3131
3232pub trait ClientCallbacks {
33- fn handle_sub_request ( & mut self , id : u64 , req : SubRequest ) -> Result < SubResponse , ServerError > ;
33+ fn handle_sub_request ( & mut self , req : SubRequest ) -> Result < SubResponse , ServerError > ;
3434}
3535
3636pub fn run_conversation < C : Codec > (
@@ -65,7 +65,7 @@ pub fn run_conversation<C: Codec>(
6565
6666 match ( msg. kind , msg. payload ) {
6767 ( Kind :: SubRequest , Payload :: SubRequest ( sr) ) => {
68- let resp = callbacks. handle_sub_request ( id , sr) ?;
68+ let resp = callbacks. handle_sub_request ( sr) ?;
6969 let reply =
7070 Envelope { id, kind : Kind :: SubResponse , payload : Payload :: SubResponse ( resp) } ;
7171 let encoded = C :: encode ( & reply) . map_err ( wrap_encode) ?;
@@ -104,19 +104,14 @@ pub(crate) fn version_check(srv: &ProcMacroServerProcess) -> Result<u32, ServerE
104104
105105 struct NoCallbacks ;
106106 impl ClientCallbacks for NoCallbacks {
107- fn handle_sub_request (
108- & mut self ,
109- _id : u64 ,
110- _req : SubRequest ,
111- ) -> Result < SubResponse , ServerError > {
107+ fn handle_sub_request ( & mut self , _req : SubRequest ) -> Result < SubResponse , ServerError > {
112108 Err ( ServerError { message : "sub-request not supported here" . into ( ) , io : None } )
113109 }
114110 }
115111
116112 let mut callbacks = NoCallbacks ;
117113
118- let response_payload =
119- run_bidirectional ( srv, ( 0 , Kind :: Request , request) . into ( ) , & mut callbacks) ?;
114+ let response_payload = run_request ( srv, request, & mut callbacks) ?;
120115
121116 match response_payload {
122117 Payload :: Response ( Response :: ApiVersionCheck ( version) ) => Ok ( version) ,
@@ -135,19 +130,14 @@ pub(crate) fn enable_rust_analyzer_spans(
135130
136131 struct NoCallbacks ;
137132 impl ClientCallbacks for NoCallbacks {
138- fn handle_sub_request (
139- & mut self ,
140- _id : u64 ,
141- _req : SubRequest ,
142- ) -> Result < SubResponse , ServerError > {
133+ fn handle_sub_request ( & mut self , _req : SubRequest ) -> Result < SubResponse , ServerError > {
143134 Err ( ServerError { message : "sub-request not supported here" . into ( ) , io : None } )
144135 }
145136 }
146137
147138 let mut callbacks = NoCallbacks ;
148139
149- let response_payload =
150- run_bidirectional ( srv, ( 0 , Kind :: Request , request) . into ( ) , & mut callbacks) ?;
140+ let response_payload = run_request ( srv, request, & mut callbacks) ?;
151141
152142 match response_payload {
153143 Payload :: Response ( Response :: SetConfig ( ServerConfig { span_mode } ) ) => Ok ( span_mode) ,
@@ -165,19 +155,14 @@ pub(crate) fn find_proc_macros(
165155
166156 struct NoCallbacks ;
167157 impl ClientCallbacks for NoCallbacks {
168- fn handle_sub_request (
169- & mut self ,
170- _id : u64 ,
171- _req : SubRequest ,
172- ) -> Result < SubResponse , ServerError > {
158+ fn handle_sub_request ( & mut self , _req : SubRequest ) -> Result < SubResponse , ServerError > {
173159 Err ( ServerError { message : "sub-request not supported here" . into ( ) , io : None } )
174160 }
175161 }
176162
177163 let mut callbacks = NoCallbacks ;
178164
179- let response_payload =
180- run_bidirectional ( srv, ( 0 , Kind :: Request , request) . into ( ) , & mut callbacks) ?;
165+ let response_payload = run_request ( srv, request, & mut callbacks) ?;
181166
182167 match response_payload {
183168 Payload :: Response ( Response :: ListMacros ( it) ) => Ok ( it) ,
@@ -229,11 +214,7 @@ pub(crate) fn expand(
229214 db : & ' de dyn SourceDatabase ,
230215 }
231216 impl < ' db > ClientCallbacks for Callbacks < ' db > {
232- fn handle_sub_request (
233- & mut self ,
234- _id : u64 ,
235- req : SubRequest ,
236- ) -> Result < SubResponse , ServerError > {
217+ fn handle_sub_request ( & mut self , req : SubRequest ) -> Result < SubResponse , ServerError > {
237218 match req {
238219 SubRequest :: SourceText { file_id, start, end } => {
239220 let file = FileId :: from_raw ( file_id) ;
@@ -249,8 +230,7 @@ pub(crate) fn expand(
249230
250231 let mut callbacks = Callbacks { db } ;
251232
252- let response_payload =
253- run_bidirectional ( & proc_macro. process , ( 0 , Kind :: Request , task) . into ( ) , & mut callbacks) ?;
233+ let response_payload = run_request ( & proc_macro. process , task, & mut callbacks) ?;
254234
255235 match response_payload {
256236 Payload :: Response ( Response :: ExpandMacro ( it) ) => Ok ( it
@@ -279,18 +259,20 @@ pub(crate) fn expand(
279259 }
280260}
281261
282- fn run_bidirectional (
262+ fn run_request (
283263 srv : & ProcMacroServerProcess ,
284- msg : Envelope ,
264+ msg : Payload ,
285265 callbacks : & mut dyn ClientCallbacks ,
286266) -> Result < Payload , ServerError > {
287267 if let Some ( server_error) = srv. exited ( ) {
288268 return Err ( server_error. clone ( ) ) ;
289269 }
290270
271+ let id = srv. request_id ( ) ;
272+
291273 if srv. use_postcard ( ) {
292- srv. run_bidirectional :: < PostcardProtocol > ( msg . id , msg. payload , callbacks)
274+ srv. run_bidirectional :: < PostcardProtocol > ( id, msg, callbacks)
293275 } else {
294- srv. run_bidirectional :: < JsonProtocol > ( msg . id , msg. payload , callbacks)
276+ srv. run_bidirectional :: < JsonProtocol > ( id, msg, callbacks)
295277 }
296278}
0 commit comments