Trait snocat::common::protocol::traits::Router [−][src]
pub trait Router: Downcast + DowncastSync { fn route(
&self,
request: &Request,
tunnel_registry: Arc<dyn TunnelRegistry + Send + Sync>
) -> BoxFuture<'_, Result<(RouteAddress, Box<dyn TunnelStream + Send + Sync + 'static>), RoutingError>>; }
Expand description
Routers are responsible for taking an address and forwarding it to the appropriate tunnel. When forwarding, the router can alter the address to remove any routing-specific information before it is handed to the Request’s protocol::Client.
Required methods
fn route(
&self,
request: &Request,
tunnel_registry: Arc<dyn TunnelRegistry + Send + Sync>
) -> BoxFuture<'_, Result<(RouteAddress, Box<dyn TunnelStream + Send + Sync + 'static>), RoutingError>>
Implementations
Returns true if the trait object wraps an object of type __T
.
Returns a boxed object from a boxed trait object if the underlying object is of type
__T
. Returns the original boxed trait if it isn’t.
Returns an Rc
-ed object from an Rc
-ed trait object if the underlying object is of
type __T
. Returns the original Rc
-ed trait if it isn’t.
Returns a reference to the object within the trait object if it is of type __T
, or
None
if it isn’t.
Returns a mutable reference to the object within the trait object if it is of type
__T
, or None
if it isn’t.