From be62f065a62048b798e8bb2b8e3699bdd5b6d517 Mon Sep 17 00:00:00 2001 From: zirkonya Date: Tue, 1 Sep 2026 09:51:18 +0200 Subject: add proc macros ; benchmark ; example --- src/transport/receiver.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/transport/receiver.rs') diff --git a/src/transport/receiver.rs b/src/transport/receiver.rs index 3a7c948..a165110 100644 --- a/src/transport/receiver.rs +++ b/src/transport/receiver.rs @@ -3,3 +3,16 @@ use crate::{codec::Codec, context::Context, transport::Result}; pub trait PacketReceiver: Send + Sync { fn recv>(&self, ctx: &Context) -> Result<(Uid, P)>; } + +pub trait PacketReceiverBuf: Send + Sync { + fn recv_buf(&self, ctx: &Context) -> Result<(Uid, Vec)>; +} + +impl> PacketReceiver for R { + fn recv>(&self, ctx: &Context) -> Result<(Uid, P)> { + let (uid, bytes) = self.recv_buf(ctx)?; + let mut reader = bytes.as_slice(); + let packet = P::decode(&mut reader, ctx)?; + Ok((uid, packet)) + } +} \ No newline at end of file -- cgit v1.2.3