From 849d827486c75b2ab223d7b0e638dbb5b74d4d1d Mon Sep 17 00:00:00 2001 From: hozan23 Date: Thu, 9 Nov 2023 11:38:19 +0300 Subject: rename crates --- karyons_net/src/transports/mod.rs | 3 -- karyons_net/src/transports/tcp.rs | 82 -------------------------------------- karyons_net/src/transports/udp.rs | 77 ----------------------------------- karyons_net/src/transports/unix.rs | 73 --------------------------------- 4 files changed, 235 deletions(-) delete mode 100644 karyons_net/src/transports/mod.rs delete mode 100644 karyons_net/src/transports/tcp.rs delete mode 100644 karyons_net/src/transports/udp.rs delete mode 100644 karyons_net/src/transports/unix.rs (limited to 'karyons_net/src/transports') diff --git a/karyons_net/src/transports/mod.rs b/karyons_net/src/transports/mod.rs deleted file mode 100644 index f399133..0000000 --- a/karyons_net/src/transports/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod tcp; -pub mod udp; -pub mod unix; diff --git a/karyons_net/src/transports/tcp.rs b/karyons_net/src/transports/tcp.rs deleted file mode 100644 index 5ff7b28..0000000 --- a/karyons_net/src/transports/tcp.rs +++ /dev/null @@ -1,82 +0,0 @@ -use async_trait::async_trait; - -use smol::{ - io::{split, AsyncReadExt, AsyncWriteExt, ReadHalf, WriteHalf}, - lock::Mutex, - net::{TcpListener, TcpStream}, -}; - -use crate::{ - connection::Connection, - endpoint::{Addr, Endpoint, Port}, - listener::Listener, - Result, -}; - -/// TCP network connection implementations of the `Connection` trait. -pub struct TcpConn { - inner: TcpStream, - read: Mutex>, - write: Mutex>, -} - -impl TcpConn { - /// Creates a new TcpConn - pub fn new(conn: TcpStream) -> Self { - let (read, write) = split(conn.clone()); - Self { - inner: conn, - read: Mutex::new(read), - write: Mutex::new(write), - } - } -} - -#[async_trait] -impl Connection for TcpConn { - fn peer_endpoint(&self) -> Result { - Ok(Endpoint::new_tcp_addr(&self.inner.peer_addr()?)) - } - - fn local_endpoint(&self) -> Result { - Ok(Endpoint::new_tcp_addr(&self.inner.local_addr()?)) - } - - async fn recv(&self, buf: &mut [u8]) -> Result { - self.read.lock().await.read_exact(buf).await?; - Ok(buf.len()) - } - - async fn send(&self, buf: &[u8]) -> Result { - self.write.lock().await.write_all(buf).await?; - Ok(buf.len()) - } -} - -#[async_trait] -impl Listener for TcpListener { - fn local_endpoint(&self) -> Result { - Ok(Endpoint::new_tcp_addr(&self.local_addr()?)) - } - - async fn accept(&self) -> Result> { - let (conn, _) = self.accept().await?; - conn.set_nodelay(true)?; - Ok(Box::new(TcpConn::new(conn))) - } -} - -/// Connects to the given TCP address and port. -pub async fn dial_tcp(addr: &Addr, port: &Port) -> Result { - let address = format!("{}:{}", addr, port); - let conn = TcpStream::connect(address).await?; - conn.set_nodelay(true)?; - Ok(TcpConn::new(conn)) -} - -/// Listens on the given TCP address and port. -pub async fn listen_tcp(addr: &Addr, port: &Port) -> Result { - let address = format!("{}:{}", addr, port); - let listener = TcpListener::bind(address).await?; - Ok(listener) -} diff --git a/karyons_net/src/transports/udp.rs b/karyons_net/src/transports/udp.rs deleted file mode 100644 index 27fb9ae..0000000 --- a/karyons_net/src/transports/udp.rs +++ /dev/null @@ -1,77 +0,0 @@ -use std::net::SocketAddr; - -use async_trait::async_trait; -use smol::net::UdpSocket; - -use crate::{ - connection::Connection, - endpoint::{Addr, Endpoint, Port}, - Result, -}; - -/// UDP network connection implementations of the `Connection` trait. -pub struct UdpConn { - inner: UdpSocket, -} - -impl UdpConn { - /// Creates a new UdpConn - pub fn new(conn: UdpSocket) -> Self { - Self { inner: conn } - } -} - -impl UdpConn { - /// Receives a single datagram message. Returns the number of bytes read - /// and the origin endpoint. - pub async fn recv_from(&self, buf: &mut [u8]) -> Result<(usize, Endpoint)> { - let (size, addr) = self.inner.recv_from(buf).await?; - Ok((size, Endpoint::new_udp_addr(&addr))) - } - - /// Sends data to the given address. Returns the number of bytes written. - pub async fn send_to(&self, buf: &[u8], addr: &Endpoint) -> Result { - let addr: SocketAddr = addr.clone().try_into()?; - let size = self.inner.send_to(buf, addr).await?; - Ok(size) - } -} - -#[async_trait] -impl Connection for UdpConn { - fn peer_endpoint(&self) -> Result { - Ok(Endpoint::new_udp_addr(&self.inner.peer_addr()?)) - } - - fn local_endpoint(&self) -> Result { - Ok(Endpoint::new_udp_addr(&self.inner.local_addr()?)) - } - - async fn recv(&self, buf: &mut [u8]) -> Result { - let size = self.inner.recv(buf).await?; - Ok(size) - } - - async fn send(&self, buf: &[u8]) -> Result { - let size = self.inner.send(buf).await?; - Ok(size) - } -} - -/// Connects to the given UDP address and port. -pub async fn dial_udp(addr: &Addr, port: &Port) -> Result { - let address = format!("{}:{}", addr, port); - - // Let the operating system assign an available port to this socket - let conn = UdpSocket::bind("[::]:0").await?; - conn.connect(address).await?; - Ok(UdpConn::new(conn)) -} - -/// Listens on the given UDP address and port. -pub async fn listen_udp(addr: &Addr, port: &Port) -> Result { - let address = format!("{}:{}", addr, port); - let conn = UdpSocket::bind(address).await?; - let udp_conn = UdpConn::new(conn); - Ok(udp_conn) -} diff --git a/karyons_net/src/transports/unix.rs b/karyons_net/src/transports/unix.rs deleted file mode 100644 index c89832e..0000000 --- a/karyons_net/src/transports/unix.rs +++ /dev/null @@ -1,73 +0,0 @@ -use async_trait::async_trait; - -use smol::{ - io::{split, AsyncReadExt, AsyncWriteExt, ReadHalf, WriteHalf}, - lock::Mutex, - net::unix::{UnixListener, UnixStream}, -}; - -use crate::{connection::Connection, endpoint::Endpoint, listener::Listener, Result}; - -/// Unix domain socket implementations of the `Connection` trait. -pub struct UnixConn { - inner: UnixStream, - read: Mutex>, - write: Mutex>, -} - -impl UnixConn { - /// Creates a new UnixConn - pub fn new(conn: UnixStream) -> Self { - let (read, write) = split(conn.clone()); - Self { - inner: conn, - read: Mutex::new(read), - write: Mutex::new(write), - } - } -} - -#[async_trait] -impl Connection for UnixConn { - fn peer_endpoint(&self) -> Result { - Ok(Endpoint::new_unix_addr(&self.inner.peer_addr()?)) - } - - fn local_endpoint(&self) -> Result { - Ok(Endpoint::new_unix_addr(&self.inner.local_addr()?)) - } - - async fn recv(&self, buf: &mut [u8]) -> Result { - self.read.lock().await.read_exact(buf).await?; - Ok(buf.len()) - } - - async fn send(&self, buf: &[u8]) -> Result { - self.write.lock().await.write_all(buf).await?; - Ok(buf.len()) - } -} - -#[async_trait] -impl Listener for UnixListener { - fn local_endpoint(&self) -> Result { - Ok(Endpoint::new_unix_addr(&self.local_addr()?)) - } - - async fn accept(&self) -> Result> { - let (conn, _) = self.accept().await?; - Ok(Box::new(UnixConn::new(conn))) - } -} - -/// Connects to the given Unix socket path. -pub async fn dial_unix(path: &String) -> Result { - let conn = UnixStream::connect(path).await?; - Ok(UnixConn::new(conn)) -} - -/// Listens on the given Unix socket path. -pub fn listen_unix(path: &String) -> Result { - let listener = UnixListener::bind(path)?; - Ok(listener) -} -- cgit v1.2.3