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

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.

Returns an Arc-ed object from an Arc-ed trait object if the underlying object is of type __T. Returns the original Arc-ed trait if it isn’t.

Implementors