From 1fb4bea2673f1c60a789788e972fa994e18674ef Mon Sep 17 00:00:00 2001 From: Pavel Perestoronin Date: Sat, 29 Apr 2023 22:32:46 +0200 Subject: [PATCH] Fix: include raw payload in `Payload::Unknown` as well --- src/models/data/entity_method.rs | 1 + src/models/data/payload.rs | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/models/data/entity_method.rs b/src/models/data/entity_method.rs index 6cd1268..718a6dc 100644 --- a/src/models/data/entity_method.rs +++ b/src/models/data/entity_method.rs @@ -14,6 +14,7 @@ pub enum EntityMethod { Unknown { sub_type: u32, + /// Whole packet payload (including the sub-type). #[serde_as(as = "serde_with::hex::Hex")] payload: Vec, }, diff --git a/src/models/data/payload.rs b/src/models/data/payload.rs index 8aab0e2..71b9133 100644 --- a/src/models/data/payload.rs +++ b/src/models/data/payload.rs @@ -15,7 +15,13 @@ pub enum Payload { EntityMethod(EntityMethod), /// Default payload when type is not known. - Unknown(#[serde_as(as = "serde_with::hex::Hex")] Vec), + Unknown { + type_: u32, + + /// Whole packet payload. + #[serde_as(as = "serde_with::hex::Hex")] + raw: Vec, + }, } impl Payload { @@ -44,7 +50,10 @@ impl Payload { 8 => Self::EntityMethod(EntityMethod::new(payload)?), - _ => Self::Unknown(payload), + _ => Self::Unknown { + raw: payload, + type_, + }, }; Ok(this) }