diff options
-rw-r--r-- | src/protocol.rs | 10 | ||||
-rw-r--r-- | src/test_macros.rs | 8 |
2 files changed, 9 insertions, 9 deletions
diff --git a/src/protocol.rs b/src/protocol.rs index eb903b5..7a13175 100644 --- a/src/protocol.rs +++ b/src/protocol.rs @@ -42,7 +42,7 @@ impl State { pub struct Id { pub id: i32, pub state: State, - pub direction: PacketDirection + pub direction: PacketDirection, } impl Serialize for Id { @@ -87,12 +87,14 @@ pub struct ProtocolPacketField { pub kind: String, } -pub trait Packet: Serialize { +pub trait Packet: Sized { fn id(&self) -> Id; fn version() -> crate::types::VarInt; fn mc_deserialize(raw: RawPacket<'_>) -> Result<Self, PacketErr>; + + fn mc_serialize_body<S>(&self, to: &mut S) -> SerializeResult where S: Serializer; } pub enum PacketErr { @@ -284,10 +286,8 @@ macro_rules! define_protocol { other => Err(UnknownId(other.into())), } } - } - impl crate::Serialize for $packett { - fn mc_serialize<S: crate::Serializer>(&self, to: &mut S) -> crate::SerializeResult { + fn mc_serialize_body<S>(&self, to: &mut S) -> crate::SerializeResult where S: crate::Serializer { use self::$packett::*; match self { $($nam(body) => to.serialize_other(body)),+ diff --git a/src/test_macros.rs b/src/test_macros.rs index 1eeddb9..9caded5 100644 --- a/src/test_macros.rs +++ b/src/test_macros.rs @@ -10,7 +10,7 @@ macro_rules! packet_test_cases { println!("{:?}", packet); } let mut out = BytesSerializer::default(); - packet.mc_serialize(&mut out).expect("serialize succeeds"); + packet.mc_serialize_body(&mut out).expect("serialize succeeds"); let bytes = out.into_bytes(); let raw_packet = RawPacket { @@ -36,14 +36,14 @@ macro_rules! packet_test_cases { let packet = $pnam::$varnam($bodnam::test_gen_random()); let mut serializer = BenchSerializer::default(); packet - .mc_serialize(&mut serializer) + .mc_serialize_body(&mut serializer) .expect("serialize succeeds"); b.bytes = serializer.len() as u64; serializer.reset(); b.iter(|| { packet - .mc_serialize(&mut serializer) + .mc_serialize_body(&mut serializer) .expect("serialize succeeds"); serializer.reset(); }) @@ -55,7 +55,7 @@ macro_rules! packet_test_cases { let packet = $pnam::$varnam($bodnam::test_gen_random()); let mut serializer = BytesSerializer::default(); packet - .mc_serialize(&mut serializer) + .mc_serialize_body(&mut serializer) .expect("serialize succeeds"); let bytes = serializer.into_bytes(); |