]> git.lizzy.rs Git - mt_rudp.git/commitdiff
Use delegate instead of Deref
authorLizzy Fleckenstein <eliasfleckenstein@web.de>
Wed, 15 Feb 2023 13:27:59 +0000 (14:27 +0100)
committerLizzy Fleckenstein <eliasfleckenstein@web.de>
Wed, 15 Feb 2023 13:27:59 +0000 (14:27 +0100)
Cargo.toml
src/lib.rs

index a15ed83e13c15505752be458e5db3161f0b48c4d..0b5f690e4eb242b76947ef59df8f99387bae9589 100644 (file)
@@ -7,6 +7,7 @@ edition = "2021"
 async-recursion = "1.0.0"
 async-trait = "0.1.60"
 byteorder = "1.4.3"
+delegate = "0.9.0"
 num_enum = "0.5.7"
 thiserror = "1.0.38"
 tokio = { version = "1.23.0", features = ["sync", "time", "net", "signal", "macros", "rt"] }
index 334692a4ec3c43da52e1c6a771cffb486b932c0e..76f0311dca127c322aea84bc89b5ae5ae9f42dd8 100644 (file)
@@ -10,8 +10,9 @@ mod send;
 pub use prelude::*;
 
 use async_trait::async_trait;
+use delegate::delegate;
 use num_enum::TryFromPrimitive;
-use std::{cell::OnceCell, collections::HashMap, io, ops, sync::Arc, time::Instant};
+use std::{cell::OnceCell, collections::HashMap, io, sync::Arc, time::Instant};
 use tokio::{
     sync::{mpsc, watch, Mutex, RwLock},
     task::JoinSet,
@@ -122,17 +123,11 @@ macro_rules! impl_share {
 impl_share!(RudpReceiver);
 impl_share!(RudpSender);
 
-impl<S: UdpSender> ops::Deref for RudpReceiver<S> {
-    type Target = mpsc::UnboundedReceiver<InPkt>;
-
-    fn deref(&self) -> &Self::Target {
-        &self.pkt_rx
-    }
-}
-
-impl<S: UdpSender> ops::DerefMut for RudpReceiver<S> {
-    fn deref_mut(&mut self) -> &mut Self::Target {
-        &mut self.pkt_rx
+impl<S: UdpSender> RudpReceiver<S> {
+    delegate! {
+        to self.pkt_rx {
+            pub async fn recv(&mut self) -> Option<InPkt>;
+        }
     }
 }