diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/protocol.rs | 4 |
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)),*, |