Skip to content

Commit

Permalink
Add MessageInfo
Browse files Browse the repository at this point in the history
Signed-off-by: Patrick José Pereira <[email protected]>
  • Loading branch information
patrickelectric committed Apr 18, 2024
1 parent 155dcd8 commit 6a7ddd9
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
8 changes: 8 additions & 0 deletions build/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,7 @@ impl MessageDefinition {
})
.collect();

let id = self.id;
quote! {
#[derive(Debug, Clone, PartialEq, Default)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
Expand All @@ -312,6 +313,12 @@ impl MessageDefinition {
}
}
}

impl MessageInfo for #struct_name {
fn id() -> u16 {
#id
}
}
}
}
}
Expand Down Expand Up @@ -454,6 +461,7 @@ pub fn generate<R: Read, W: Write>(input: &mut R, output_rust: &mut W) {
let ping_message = emit_ping_message(messages);

let code = quote! {
use crate::message::MessageInfo;
use crate::message::PingMessage;
use crate::message::SerializePayload;
use crate::message::DeserializePayload;
Expand Down
4 changes: 4 additions & 0 deletions src/message.rs
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,10 @@ pub trait DeserializePayload {
fn deserialize(payload: &[u8]) -> Self;
}

pub trait MessageInfo {
fn id() -> u16;
}

pub trait DeserializeGenericMessage
where
Self: Sized,
Expand Down

0 comments on commit 6a7ddd9

Please sign in to comment.