diff options
| author | Tobias Deiminger <tdmg@linutronix.de> | 2024-04-15 18:16:47 +0200 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2025-02-25 00:09:29 +0100 |
| commit | 3d049f8843f8ff2ecfca7bdee6f88ec92d6ae627 (patch) | |
| tree | e04e62aa503468e9184c476c04ff5ab2e26aa77b /src | |
| parent | Use MsgId in Variant (diff) | |
Use MsgId in Message
Diffstat (limited to '')
| -rw-r--r-- | src/primitive/message.rs | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/src/primitive/message.rs b/src/primitive/message.rs index 27e4b66..6389eda 100644 --- a/src/primitive/message.rs +++ b/src/primitive/message.rs @@ -3,7 +3,7 @@ use std::{collections::HashMap, vec::Vec}; use crate::error::ProtocolError; use crate::{deserialize::*, serialize::*}; -use crate::primitive::BufferInfo; +use crate::primitive::{BufferInfo, MsgId}; use super::{Variant, VariantList}; @@ -13,13 +13,7 @@ use super::{Variant, VariantList}; #[derive(Clone, Debug, std::cmp::PartialEq)] pub struct Message { /// The unique, sequential id for the message - /// i32 by default i64 if long-message-id features is enabled - #[cfg(feature = "long-message-id")] - #[cfg_attr(docsrs, doc(cfg(feature = "long-message-id")))] - pub msg_id: i64, - #[cfg(not(feature = "long-message-id"))] - #[cfg_attr(docsrs, doc(cfg(not(feature = "long-message-id"))))] - pub msg_id: i32, + pub msg_id: MsgId, /// The timestamp of the message in UNIX time. /// If long-time is disabled this is an i32 representing the seconds since EPOCH. /// If long-time is enabled this is an i64 representing the miliseconds since EPOCH. @@ -57,10 +51,7 @@ impl Serialize for Message { fn serialize(&self) -> Result<Vec<u8>, ProtocolError> { let mut values: Vec<u8> = Vec::new(); - #[cfg(feature = "long-message-id")] - values.append(&mut i64::serialize(&self.msg_id)?); - #[cfg(not(feature = "long-message-id"))] - values.append(&mut i32::serialize(&self.msg_id)?); + values.append(&mut MsgId::serialize(&self.msg_id)?); #[cfg(feature = "long-time")] values.append(&mut i64::serialize(&self.timestamp)?); @@ -90,10 +81,7 @@ impl Serialize for Message { impl Deserialize for Message { fn parse(b: &[u8]) -> Result<(usize, Self), ProtocolError> { let mut pos = 0; - #[cfg(feature = "long-message-id")] - let (parsed, msg_id) = i64::parse(&b[pos..])?; - #[cfg(not(feature = "long-message-id"))] - let (parsed, msg_id) = i32::parse(&b[pos..])?; + let (parsed, msg_id) = MsgId::parse(&b[pos..])?; pos += parsed; // TODO LONGMESSAGES feature @@ -268,7 +256,7 @@ mod tests { #[test] fn message_serialize() { let message = Message { - msg_id: 1, + msg_id: MsgId(1), timestamp: 1609846597, msg_type: MessageType::PLAIN, flags: 0, @@ -301,7 +289,7 @@ mod tests { #[test] fn message_deserialize() { let message = Message { - msg_id: 1, + msg_id: MsgId(1), timestamp: 1609846597, msg_type: MessageType::PLAIN, flags: 0, |
