From 9b9aa681d3bcf41a22291dff5d243b5fbb108339 Mon Sep 17 00:00:00 2001 From: Joey Sacchini Date: Fri, 2 Oct 2020 12:46:46 -0400 Subject: fix random generation and make raw packet accept a borrowed slice --- src/protocol.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/protocol.rs') diff --git a/src/protocol.rs b/src/protocol.rs index d3a9af0..98b9740 100644 --- a/src/protocol.rs +++ b/src/protocol.rs @@ -30,7 +30,7 @@ impl PacketIdentifier for T {} pub trait Packet: Serialize { fn id(&self) -> I; - fn mc_deserialize(raw: RawPacket) -> Result; + fn mc_deserialize(raw: RawPacket<'_, I>) -> Result; } pub enum PacketErr { @@ -57,9 +57,9 @@ impl fmt::Debug for PacketErr { impl std::error::Error for PacketErr {} #[derive(Debug, Clone, PartialEq)] -pub struct RawPacket { +pub struct RawPacket<'a, I> { pub id: I, - pub data: Vec, + pub data: &'a[u8], } pub trait ProtocolType: Serialize + Deserialize {} @@ -200,7 +200,7 @@ macro_rules! define_protocol { use crate::Deserialize; let id = raw.id; - let data = raw.data.as_slice(); + let data = raw.data; match (id.id, id.state, id.direction) { $(($id, $state, $direction) => Ok($nam($body::mc_deserialize(data).map_err(DeserializeFailed)?.value))),*, -- cgit