use std::future::Future;
use std::net::SocketAddr;
use crate::io::{AsyncRead, AsyncWrite};
pub trait Connector: Send + Sync {
type Connection: AsyncRead + AsyncWrite + Send;
fn connect(
&self,
addr: SocketAddr,
) -> impl Future<Output = std::io::Result<Self::Connection>> + Send;
fn connect_with_port(
&self,
addr: SocketAddr,
local_port: u16,
) -> impl Future<Output = std::io::Result<Self::Connection>> + Send;
}