@@ -2,7 +2,6 @@ use async_trait::async_trait;
22use serde:: { Deserialize , Serialize } ;
33use std:: any:: Any ;
44use std:: error:: Error ;
5- use std:: ops:: Deref ;
65use tokio:: sync:: oneshot;
76
87#[ derive( Debug , Clone , Copy ) ]
@@ -22,7 +21,7 @@ pub trait SenderChannel: Send + Sync {
2221 async fn send_object (
2322 & self ,
2423 message : Box < dyn Any + Send + Sync + ' static > ,
25- ) -> Result < Outcome , Box < dyn std :: error :: Error > > ;
24+ ) -> Result < Outcome , Box < dyn Error > > ;
2625 fn message_kind ( & self ) -> MessageKind ;
2726}
2827
@@ -57,7 +56,7 @@ pub trait ReceiverChannel: Send + Sync {
5756impl dyn ReceiverChannel {
5857 pub async fn receive < T > ( & self ) -> Result < ( T , oneshot:: Sender < Outcome > ) , Box < dyn Error > >
5958 where
60- T : for < ' de > Deserialize < ' de > + Send + Sync + Clone + Sized + ' static ,
59+ T : for < ' de > Deserialize < ' de > + Send + Sync + Sized + ' static ,
6160 {
6261 let result = self . receive_object ( ) . await ?;
6362 match self . message_kind ( ) {
@@ -74,7 +73,7 @@ impl dyn ReceiverChannel {
7473 }
7574 MessageKind :: Object => {
7675 let message = result. 0 . downcast :: < T > ( ) . unwrap ( ) ;
77- Ok ( ( message. deref ( ) . clone ( ) , result. 1 ) )
76+ Ok ( ( * message, result. 1 ) )
7877 }
7978 }
8079 }
0 commit comments