From 1d4ebed25ff3e05d2fac70a040901fd3ea3029eb Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Wed, 15 Feb 2023 21:54:25 +0100 Subject: Rework structure --- src/client.rs | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) (limited to 'src/client.rs') diff --git a/src/client.rs b/src/client.rs index 6785a1f..c4922ec 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1,48 +1,44 @@ -use crate::prelude::*; +use super::*; use async_trait::async_trait; use std::{io, sync::Arc}; use tokio::net; -pub struct Sender { - sock: Arc, -} +#[derive(Debug)] +pub struct ToSrv(Arc); + +#[derive(Debug)] +pub struct FromSrv(Arc); #[async_trait] -impl UdpSender for Sender { +impl UdpSender for ToSrv { async fn send(&self, data: &[u8]) -> io::Result<()> { - self.sock.send(data).await?; + self.0.send(data).await?; Ok(()) } } -pub struct Receiver { - sock: Arc, -} - #[async_trait] -impl UdpReceiver for Receiver { +impl UdpReceiver for FromSrv { async fn recv(&self) -> io::Result> { let mut buffer = Vec::new(); buffer.resize(UDP_PKT_SIZE, 0); - let len = self.sock.recv(&mut buffer).await?; + let len = self.0.recv(&mut buffer).await?; buffer.truncate(len); Ok(buffer) } } -pub async fn connect(addr: &str) -> io::Result<(RudpSender, RudpReceiver)> { +pub async fn connect(addr: &str) -> io::Result<(RudpSender, RudpReceiver)> { let sock = Arc::new(net::UdpSocket::bind("0.0.0.0:0").await?); sock.connect(addr).await?; new( PeerID::Srv as u16, PeerID::Nil as u16, - Sender { - sock: Arc::clone(&sock), - }, - Receiver { sock }, + ToSrv(Arc::clone(&sock)), + FromSrv(sock), ) .await } -- cgit v1.2.3