use smpp_pdu::pdu::DeliverSmPdu;
#[derive(Debug, Eq, Hash, PartialEq)]
pub struct MessageUniqueKey {
pub namespace_id: String,
pub message_id: String,
pub destination_addr: String,
}
impl MessageUniqueKey {
pub fn new(
namespace_id: String,
message_id: String,
destination_addr: String,
) -> Self {
Self {
namespace_id,
message_id,
destination_addr,
}
}
pub fn from_dr(namespace_id: String, pdu: &DeliverSmPdu) -> Option<Self> {
let destination_addr = pdu.source_addr();
let message_id = pdu.extract_receipted_message_id();
message_id.map(|message_id| Self {
namespace_id,
message_id,
destination_addr,
})
}
}