aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoey Sacchini <joey@sacchini.net>2020-12-07 18:22:23 -0500
committerJoey Sacchini <joey@sacchini.net>2020-12-07 18:22:23 -0500
commit99e7e2b094cc5e20e7ca25df775020bb0dbf254e (patch)
tree36673f6ab53898a9d36bb44483b4f3193b8afca2 /src
parent1db5a578e238ffe9c57b7a9c3be97dbf62f4f36e (diff)
downloadmcproto-rs-99e7e2b094cc5e20e7ca25df775020bb0dbf254e.tar.gz
mcproto-rs-99e7e2b094cc5e20e7ca25df775020bb0dbf254e.tar.bz2
mcproto-rs-99e7e2b094cc5e20e7ca25df775020bb0dbf254e.zip
include associated packet type with PacketKind trait
Diffstat (limited to 'src')
-rw-r--r--src/protocol.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/protocol.rs b/src/protocol.rs
index f8873a1..7bbfa84 100644
--- a/src/protocol.rs
+++ b/src/protocol.rs
@@ -98,6 +98,8 @@ pub trait PacketKind: HasPacketId + Clone + Copy + PartialEq + Eq {
#[cfg(feature = "gat")]
type RawPacket<'a>: RawPacket<'a>;
+ type Packet: Packet;
+
fn from_id(id: Id) -> Option<Self>;
#[cfg(feature = "gat")]
@@ -432,6 +434,8 @@ macro_rules! define_protocol {
#[cfg(feature = "gat")]
type RawPacket<'a> = $rawpackett<'a>;
+ type Packet = $packett;
+
fn from_id(id: crate::protocol::Id) -> Option<Self> {
match (id.id, id.state, id.direction) {
$(($id, crate::protocol::State::$state, crate::protocol::PacketDirection::$direction) => Some($kindt::$nam)),*,