use crate::datagram::DatagramConfig;
use crate::stream::StreamConfig;
use std::path::PathBuf;
use std::time::Duration;
#[derive(Debug, Clone)]
pub struct UnixStreamConfig {
pub socket_path: PathBuf,
pub max_connections: usize,
pub buffer_size: usize,
pub read_timeout: Duration,
pub write_timeout: Duration,
}
impl Default for UnixStreamConfig {
fn default() -> Self {
Self {
socket_path: "/tmp/echosrv_stream.sock".into(),
max_connections: 100,
buffer_size: 1024,
read_timeout: Duration::from_secs(30),
write_timeout: Duration::from_secs(30),
}
}
}
impl From<UnixStreamConfig> for StreamConfig {
fn from(config: UnixStreamConfig) -> Self {
Self {
bind_addr: std::net::SocketAddr::new(
std::net::IpAddr::V4(std::net::Ipv4Addr::UNSPECIFIED),
0,
),
max_connections: config.max_connections,
buffer_size: config.buffer_size,
read_timeout: config.read_timeout,
write_timeout: config.write_timeout,
}
}
}
#[derive(Debug, Clone)]
pub struct UnixDatagramConfig {
pub socket_path: PathBuf,
pub buffer_size: usize,
pub read_timeout: Duration,
pub write_timeout: Duration,
}
impl Default for UnixDatagramConfig {
fn default() -> Self {
Self {
socket_path: "/tmp/echosrv_datagram.sock".into(),
buffer_size: 1024,
read_timeout: Duration::from_secs(30),
write_timeout: Duration::from_secs(30),
}
}
}
impl From<UnixDatagramConfig> for DatagramConfig {
fn from(config: UnixDatagramConfig) -> Self {
Self {
bind_addr: std::net::SocketAddr::new(
std::net::IpAddr::V4(std::net::Ipv4Addr::UNSPECIFIED),
0,
),
buffer_size: config.buffer_size,
read_timeout: config.read_timeout,
write_timeout: config.write_timeout,
}
}
}