use std::{
net::{SocketAddr, TcpStream},
str::FromStr,
time::Duration,
};
use crate::{config, Result, Transport};
#[derive(Debug)]
pub struct Realman {
ip: String,
port: u16,
}
impl Realman {
pub fn new(ip: impl Into<String>, port: u16) -> Realman {
Realman {
ip: ip.into(),
port,
}
}
pub fn connect(&self) -> Result<Transport> {
let socket = TcpStream::connect_timeout(
&SocketAddr::from_str(format!("{}:{}", self.ip, self.port).as_str())?,
Duration::from_secs(5),
)?;
Ok(Transport::new(socket))
}
}
impl Default for Realman {
fn default() -> Self {
Self::new(config::DEFAULT_IP, config::DEFUALT_PORT)
}
}