@@ -14,18 +14,18 @@ use crate::{
1414 ClientError , EntryMessage , ThriftMessage ,
1515} ;
1616
17- pub struct MakeClientTransport < MkT , MkC , Resp >
17+ pub struct MakeClientTransport < MkT , MkC , Req , Resp >
1818where
1919 MkT : MakeTransport ,
2020 MkC : MakeCodec < MkT :: ReadHalf , MkT :: WriteHalf > ,
2121{
2222 make_transport : MkT ,
2323 make_codec : MkC ,
24- _phantom : PhantomData < fn ( ) -> Resp > ,
24+ _phantom : PhantomData < ( fn ( ) -> Resp , fn ( ) -> Req ) > ,
2525}
2626
27- impl < MkT : MakeTransport , MkC : MakeCodec < MkT :: ReadHalf , MkT :: WriteHalf > , Resp > Clone
28- for MakeClientTransport < MkT , MkC , Resp >
27+ impl < MkT : MakeTransport , MkC : MakeCodec < MkT :: ReadHalf , MkT :: WriteHalf > , Req , Resp > Clone
28+ for MakeClientTransport < MkT , MkC , Req , Resp >
2929{
3030 fn clone ( & self ) -> Self {
3131 Self {
@@ -36,7 +36,7 @@ impl<MkT: MakeTransport, MkC: MakeCodec<MkT::ReadHalf, MkT::WriteHalf>, Resp> Cl
3636 }
3737}
3838
39- impl < MkT , MkC , Resp > MakeClientTransport < MkT , MkC , Resp >
39+ impl < MkT , MkC , Req , Resp > MakeClientTransport < MkT , MkC , Req , Resp >
4040where
4141 MkT : MakeTransport ,
4242 MkC : MakeCodec < MkT :: ReadHalf , MkT :: WriteHalf > ,
@@ -51,13 +51,14 @@ where
5151 }
5252}
5353
54- impl < MkT , MkC , Resp > UnaryService < Address > for MakeClientTransport < MkT , MkC , Resp >
54+ impl < MkT , MkC , Req , Resp > UnaryService < Address > for MakeClientTransport < MkT , MkC , Req , Resp >
5555where
5656 MkT : MakeTransport ,
5757 MkC : MakeCodec < MkT :: ReadHalf , MkT :: WriteHalf > + Sync ,
58- Resp : EntryMessage + Send + ' static ,
58+ Resp : EntryMessage + Send + ' static + Sync ,
59+ Req : EntryMessage + Send + ' static + Sync ,
5960{
60- type Response = ThriftTransport < MkC :: Encoder , Resp > ;
61+ type Response = ThriftTransport < MkC :: Encoder , Req , Resp > ;
6162 type Error = io:: Error ;
6263
6364 async fn call ( & self , target : Address ) -> Result < Self :: Response , Self :: Error > {
@@ -72,22 +73,24 @@ where
7273 }
7374}
7475
75- pub struct Client < Resp , MkT , MkC >
76+ pub struct Client < Req , Resp , MkT , MkC >
7677where
7778 MkT : MakeTransport ,
7879 MkC : MakeCodec < MkT :: ReadHalf , MkT :: WriteHalf > + Sync ,
79- Resp : EntryMessage + Send + ' static ,
80+ Resp : EntryMessage + Send + ' static + Sync ,
81+ Req : EntryMessage + Send + ' static + Sync ,
8082{
8183 #[ allow( clippy:: type_complexity) ]
82- make_transport : PooledMakeTransport < MakeClientTransport < MkT , MkC , Resp > , Address > ,
84+ make_transport : PooledMakeTransport < MakeClientTransport < MkT , MkC , Req , Resp > , Address > ,
8385 _marker : PhantomData < Resp > ,
8486}
8587
86- impl < Resp , MkT , MkC > Clone for Client < Resp , MkT , MkC >
88+ impl < Req , Resp , MkT , MkC > Clone for Client < Req , Resp , MkT , MkC >
8789where
8890 MkT : MakeTransport ,
8991 MkC : MakeCodec < MkT :: ReadHalf , MkT :: WriteHalf > + Sync ,
90- Resp : EntryMessage + Send + ' static ,
92+ Resp : EntryMessage + Send + ' static + Sync ,
93+ Req : EntryMessage + Send + ' static + Sync ,
9194{
9295 fn clone ( & self ) -> Self {
9396 Self {
@@ -97,11 +100,12 @@ where
97100 }
98101}
99102
100- impl < Resp , MkT , MkC > Client < Resp , MkT , MkC >
103+ impl < Req , Resp , MkT , MkC > Client < Req , Resp , MkT , MkC >
101104where
102105 MkT : MakeTransport ,
103106 MkC : MakeCodec < MkT :: ReadHalf , MkT :: WriteHalf > + Sync ,
104- Resp : EntryMessage + Send + ' static ,
107+ Resp : EntryMessage + Send + ' static + Sync ,
108+ Req : EntryMessage + Send + ' static + Sync ,
105109{
106110 pub fn new ( make_transport : MkT , pool_cfg : Option < Config > , make_codec : MkC ) -> Self {
107111 let make_transport = MakeClientTransport :: new ( make_transport, make_codec) ;
@@ -113,9 +117,9 @@ where
113117 }
114118}
115119
116- impl < Req , Resp , MkT , MkC > Service < ClientContext , ThriftMessage < Req > > for Client < Resp , MkT , MkC >
120+ impl < Req , Resp , MkT , MkC > Service < ClientContext , ThriftMessage < Req > > for Client < Req , Resp , MkT , MkC >
117121where
118- Req : Send + ' static + EntryMessage ,
122+ Req : Send + ' static + EntryMessage + Sync ,
119123 Resp : EntryMessage + Send + ' static + Sync ,
120124 MkT : MakeTransport ,
121125 MkC : MakeCodec < MkT :: ReadHalf , MkT :: WriteHalf > + Sync ,
0 commit comments