pub trait TransportListenerHandler: GhostHandler<TransportListener> {
    fn handle_debug(&mut self) -> TransportListenerHandlerResult<Value>;
fn handle_bound_url(&mut self) -> TransportListenerHandlerResult<Url2>;
fn handle_create_channel(
        &mut self,
        url: Url2
    ) -> TransportListenerHandlerResult<(Url2, TransportChannelWrite, TransportChannelRead)>; }
Expand description

Represents a transport binding for establishing connections. This api was designed mainly around supporting the QUIC transport. It should be applicable to other transports, but with some assumptions:

  • Keep alive logic should be handled internally.
  • Transport encryption is handled internally.
  • See light-weight comments below on create_channel api.

Required methods

Grab a debugging internal state dump.

Retrieve the current url (address) this listener is bound to.

Attempt to establish an outgoing channel to a remote. Channels are expected to be very light-weight. This API was designed around QUIC bi-streams. If your low-level channels are not light-weight, consider implementing pooling/multiplex virtual channels to make this api light weight.

Implementors