distant_net/client/builder/
tcp.rs1use std::io;
2
3use async_trait::async_trait;
4use tokio::net::ToSocketAddrs;
5
6use super::Connector;
7use crate::common::TcpTransport;
8
9pub struct TcpConnector<T> {
11 addr: T,
12}
13
14impl<T> TcpConnector<T> {
15 pub fn new(addr: T) -> Self {
16 Self { addr }
17 }
18}
19
20impl<T> From<T> for TcpConnector<T> {
21 fn from(addr: T) -> Self {
22 Self::new(addr)
23 }
24}
25
26#[async_trait]
27impl<T: ToSocketAddrs + Send> Connector for TcpConnector<T> {
28 type Transport = TcpTransport;
29
30 async fn connect(self) -> io::Result<Self::Transport> {
31 TcpTransport::connect(self.addr).await
32 }
33}