]> git.lizzy.rs Git - mt_rudp.git/blobdiff - src/client.rs
Don't spawn tasks
[mt_rudp.git] / src / client.rs
index c4922ec9c7d45c7bc45440f2f3bd733efb7906de..56db92a9ae060f8e6bfce7ce38017bda6c3199d0 100644 (file)
@@ -19,7 +19,7 @@ impl UdpSender for ToSrv {
 
 #[async_trait]
 impl UdpReceiver for FromSrv {
-    async fn recv(&self) -> io::Result<Vec<u8>> {
+    async fn recv(&mut self) -> io::Result<Vec<u8>> {
         let mut buffer = Vec::new();
         buffer.resize(UDP_PKT_SIZE, 0);
 
@@ -30,7 +30,13 @@ impl UdpReceiver for FromSrv {
     }
 }
 
-pub async fn connect(addr: &str) -> io::Result<(RudpSender<ToSrv>, RudpReceiver<ToSrv>)> {
+pub struct RemoteSrv;
+impl UdpPeer for RemoteSrv {
+    type Sender = ToSrv;
+    type Receiver = FromSrv;
+}
+
+pub async fn connect(addr: &str) -> io::Result<(RudpSender<RemoteSrv>, RudpReceiver<RemoteSrv>)> {
     let sock = Arc::new(net::UdpSocket::bind("0.0.0.0:0").await?);
     sock.connect(addr).await?;