@@ -398,6 +398,50 @@ impl<In: RpcMessage, Out: RpcMessage> BoxableListener<In, Out>
398398 }
399399}
400400
401+ #[ cfg( feature = "iroh-net-transport" ) ]
402+ impl < In : RpcMessage , Out : RpcMessage > BoxableConnector < In , Out >
403+ for super :: iroh_net:: IrohNetConnector < In , Out >
404+ {
405+ fn clone_box ( & self ) -> Box < dyn BoxableConnector < In , Out > > {
406+ Box :: new ( self . clone ( ) )
407+ }
408+
409+ fn open_boxed ( & self ) -> OpenFuture < In , Out > {
410+ let f = Box :: pin ( async move {
411+ let ( send, recv) = super :: Connector :: open ( self ) . await ?;
412+ // map the error types to anyhow
413+ let send = send. sink_map_err ( anyhow:: Error :: from) ;
414+ let recv = recv. map_err ( anyhow:: Error :: from) ;
415+ // return the boxed streams
416+ anyhow:: Ok ( ( SendSink :: boxed ( send) , RecvStream :: boxed ( recv) ) )
417+ } ) ;
418+ OpenFuture :: boxed ( f)
419+ }
420+ }
421+
422+ #[ cfg( feature = "iroh-net-transport" ) ]
423+ impl < In : RpcMessage , Out : RpcMessage > BoxableListener < In , Out >
424+ for super :: iroh_net:: IrohNetListener < In , Out >
425+ {
426+ fn clone_box ( & self ) -> Box < dyn BoxableListener < In , Out > > {
427+ Box :: new ( self . clone ( ) )
428+ }
429+
430+ fn accept_bi_boxed ( & self ) -> AcceptFuture < In , Out > {
431+ let f = async move {
432+ let ( send, recv) = super :: Listener :: accept ( self ) . await ?;
433+ let send = send. sink_map_err ( anyhow:: Error :: from) ;
434+ let recv = recv. map_err ( anyhow:: Error :: from) ;
435+ anyhow:: Ok ( ( SendSink :: boxed ( send) , RecvStream :: boxed ( recv) ) )
436+ } ;
437+ AcceptFuture :: boxed ( f)
438+ }
439+
440+ fn local_addr ( & self ) -> & [ super :: LocalAddr ] {
441+ super :: Listener :: local_addr ( self )
442+ }
443+ }
444+
401445#[ cfg( feature = "flume-transport" ) ]
402446impl < In : RpcMessage , Out : RpcMessage > BoxableConnector < In , Out >
403447 for super :: flume:: FlumeConnector < In , Out >
0 commit comments