use crate::message::common::{AsMessage, Message};
use crate::message::types::MessageType;
use crate::serialization::serializable::Serializable;
pub struct PingMessage;
impl PingMessage{
pub fn new() -> PingMessage{
PingMessage{}
}
}
impl AsMessage for PingMessage{
fn as_message(&self) -> Message {
Message{
id: 0,
timestamp: 0,
message_type: MessageType::Ping,
data: None,
signature: None,
source: 0,
destination: 0,
}
}
}
pub struct PongMessage{
pub ping_message_id: u128,
}
impl PongMessage{
pub fn new(message_id: u128) -> PongMessage{
PongMessage{
ping_message_id: message_id,
}
}
#[inline]
pub fn from_ping_message(msg: &Message) -> PongMessage{
PongMessage::new(msg.id)
}
}
impl AsMessage for PongMessage{
fn as_message(&self) -> Message {
Message{
id: 0,
timestamp: 0,
message_type: MessageType::Ping,
data: Some(self.ping_message_id.serialize()),
signature: None,
source: 0,
destination: 0,
}
}
}