use crate::protocol::{Msg, ProtocolClient, ProtocolServer};
pub fn server_msg_to_string(msg: &Msg<ProtocolServer>) -> String {
let content = match &msg.content {
ProtocolServer::Pub(params) => format!("PUB {} ({})", ¶ms.topic, ¶ms.payload),
ProtocolServer::Req(params) => format!("REQ {} ({})", ¶ms.topic, ¶ms.payload),
ProtocolServer::Rsp(params) => format!("RSP {} ({})", ¶ms.req_id, ¶ms.payload),
ProtocolServer::Ack(params) => format!(
"ACK {} {}",
¶ms.msg_id,
params.err.as_ref().map(|e| e.to_string()).unwrap_or("".to_string())
),
};
format!("{:>6} {}", &msg.id, &content)
}
pub fn client_msg_to_string(msg: &Msg<ProtocolClient>) -> String {
let content = match &msg.content {
ProtocolClient::Sub(params) => format!("SUB {}", ¶ms.topic),
ProtocolClient::Unsub(params) => format!("UNSUB {}", ¶ms.topic),
ProtocolClient::Pub(params) => format!("PUB {} ({})", ¶ms.topic, ¶ms.payload),
ProtocolClient::Srv(params) => format!("SRV {}", ¶ms.topic),
ProtocolClient::Unsrv(params) => format!("UNSRV {}", ¶ms.topic),
ProtocolClient::Req(params) => format!("REQ {} ({})", ¶ms.topic, ¶ms.payload),
ProtocolClient::Rsp(params) => format!("RSP #{} ({})", ¶ms.req_id, ¶ms.payload),
ProtocolClient::Stop => "STOP".to_string(),
ProtocolClient::KeepAlive => "KEEP_ALIVE".to_string(),
};
format!("{:>6} {}", &msg.id, &content)
}