pub trait Listener: Sized + Send + Sync {
type Accept: Send;
type Connection: Connection;
// Required methods
async fn accept(&self) -> Result<Self::Accept>;
async fn connect(&self, accept: Self::Accept) -> Result<Self::Connection>;
fn endpoint(&self) -> Result<Endpoint>;
}
Required Associated Types§
type Accept: Send
type Connection: Connection
Required Methods§
sourceasync fn accept(&self) -> Result<Self::Accept>
async fn accept(&self) -> Result<Self::Accept>
§Future Bounds
The Future
generated by this async fn
must be Send
.
sourceasync fn connect(&self, accept: Self::Accept) -> Result<Self::Connection>
async fn connect(&self, accept: Self::Accept) -> Result<Self::Connection>
§Future Bounds
The Future
generated by this async fn
must be Send
.
fn endpoint(&self) -> Result<Endpoint>
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl<A: Listener, B: Listener> Listener for Either<A, B>
impl<A: Listener, B: Listener> Listener for Either<A, B>
type Accept = Either<<A as Listener>::Accept, <B as Listener>::Accept>
type Connection = Either<<A as Listener>::Connection, <B as Listener>::Connection>
async fn accept(&self) -> Result<Self::Accept>
async fn connect(&self, accept: Self::Accept) -> Result<Self::Connection>
fn endpoint(&self) -> Result<Endpoint>
Implementors§
impl Listener for DefaultListener
source§impl Listener for TcpListener
impl Listener for TcpListener
type Accept = <TcpListener as Listener>::Connection
type Connection = TcpStream
source§impl Listener for UnixListener
Available on Unix only.
impl Listener for UnixListener
Available on Unix only.
type Accept = UnixStream
type Connection = <UnixListener as Listener>::Accept
source§impl<L> Listener for TlsListener<L>
Available on crate feature tls
only.
impl<L> Listener for TlsListener<L>
Available on crate feature
tls
only.