@@ -68,23 +68,34 @@ impl Client {
6868 pub async fn request ( & self , req : Request ) -> Result < Response > {
6969 let timeout_nano = req. timeout_nano ;
7070 let stream_id = self . next_stream_id . fetch_add ( 2 , Ordering :: Relaxed ) ;
71-
72- let msg: GenMessage = Message :: new_request ( stream_id, req) ?
73- . try_into ( )
74- . map_err ( |err : std:: io:: Error | Error :: Others ( err. to_string ( ) ) ) ?;
71+ let msg: GenMessage ;
72+ #[ cfg( not( feature = "prost" ) ) ]
73+ {
74+ msg = Message :: new_request ( stream_id, req) ?
75+ . try_into ( )
76+ . map_err ( |err : protobuf:: Error | Error :: Others ( err. to_string ( ) ) ) ?;
77+ }
78+
79+ #[ cfg( feature = "prost" ) ]
80+ {
81+ msg = Message :: new_request ( stream_id, req) ?
82+ . try_into ( )
83+ . map_err ( |err : std:: io:: Error | Error :: Others ( err. to_string ( ) ) ) ?;
84+ }
7585
7686 let ( tx, mut rx) : ( ResultSender , ResultReceiver ) = mpsc:: channel ( 100 ) ;
77-
87+
7888 self . streams
7989 . lock ( )
8090 . map_err ( |_| Error :: Others ( "Failed to acquire lock on streams" . to_string ( ) ) ) ?
8191 . insert ( stream_id, tx) ;
82-
92+
8393 self . req_tx
8494 . send ( SendingMessage :: new ( msg) )
8595 . await
8696 . map_err ( |_| Error :: LocalClosed ) ?;
87-
97+
98+ #[ allow( clippy:: unnecessary_lazy_evaluations) ]
8899 let result = if timeout_nano == 0 {
89100 rx. recv ( )
90101 . await
@@ -134,20 +145,28 @@ impl Client {
134145 let stream_id = self . next_stream_id . fetch_add ( 2 , Ordering :: Relaxed ) ;
135146 let is_req_payload_empty = req. payload . is_empty ( ) ;
136147
148+ #[ cfg( not( feature = "prost" ) ) ]
137149 let mut msg: GenMessage = Message :: new_request ( stream_id, req) ?
138150 . try_into ( )
139- . map_err ( |e : protobuf:: Error | Error :: Others ( e. to_string ( ) ) ) ?;
151+ . map_err ( |err : protobuf:: Error | Error :: Others ( err. to_string ( ) ) ) ?;
152+
140153 #[ cfg( feature = "prost" ) ]
141- let mut msg: GenMessage = Message :: new_request ( stream_id, req)
154+ let mut msg: GenMessage = Message :: new_request ( stream_id, req) ?
142155 . try_into ( )
143156 . map_err ( |err : std:: io:: Error | Error :: Others ( err. to_string ( ) ) ) ?;
144157
145158 if streaming_client {
146159 if !is_req_payload_empty {
160+ #[ cfg( not( feature = "prost" ) ) ]
147161 return Err ( get_rpc_status (
148162 Code :: INVALID_ARGUMENT ,
149163 "Creating a ClientStream and sending payload at the same time is not allowed" ,
150164 ) ) ;
165+ #[ cfg( feature = "prost" ) ]
166+ return Err ( get_rpc_status (
167+ Code :: Unknown ,
168+ "Creating a ClientStream and sending payload at the same time is not allowed" ,
169+ ) ) ;
151170 }
152171 msg. header . add_flags ( FLAG_REMOTE_OPEN | FLAG_NO_DATA ) ;
153172 } else {
0 commit comments