doip_sockets/tcp/
tcp_listener.rs1use std::{io, net::SocketAddr};
2use tokio::net::TcpListener as TokioTcpListener;
3
4use super::TcpStream;
5
6pub struct TcpListener {
8 io: TokioTcpListener,
9}
10
11impl TcpListener {
12 pub fn new(io: TokioTcpListener) -> Self {
14 TcpListener { io }
15 }
16
17 pub async fn accept(&self) -> io::Result<(TcpStream, SocketAddr)> {
19 let (stream, addr) = self.io.accept().await?;
20
21 Ok((TcpStream::new(stream), addr))
22 }
23
24 pub fn get_ref(&self) -> &TokioTcpListener {
26 &self.io
27 }
28}