use serde::{Deserialize, Serialize};
#[cfg(not(feature = "std"))]
use alloc::string::String;
use crate::packet::{NetworkPacket, NetworkPacketBody};
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct PingPacket {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub message: Option<String>,
}
impl NetworkPacket {
pub fn ping<T: Into<String>>(message: T) -> Self {
NetworkPacket::new(NetworkPacketBody::Ping(PingPacket {
message: Some(message.into()),
}))
}
pub fn ping_empty_msg() -> Self {
NetworkPacket::new(NetworkPacketBody::Ping(PingPacket { message: None }))
}
}