Refactored message id reset.

This commit is contained in:
Jeff Baskin 2025-04-22 08:00:45 -04:00
parent a61474f38a
commit 0ab0b59f4c
2 changed files with 7 additions and 10 deletions

View File

@ -27,12 +27,8 @@ impl ClientChannel {
pub fn send(&self, mut msg: Message) -> Receiver<Message> {
let mut reg = self.registry.lock().unwrap();
if reg.contains_key(&msg.get_id()) {
let mut id = Uuid::new_v4();
while reg.contains_key(&id) {
id = Uuid::new_v4();
}
msg.reset_id(id);
while reg.contains_key(&msg.get_id()) {
msg.reset_id();
}
let (tx, rx) = channel();
reg.insert(msg.get_id(), tx);

View File

@ -70,8 +70,8 @@ impl Message {
self.id.clone()
}
pub fn reset_id(&mut self, id: Uuid) {
self.id = id;
pub fn reset_id(&mut self) {
self.id = Uuid::new_v4();
}
}
@ -175,8 +175,9 @@ mod messages {
#[test]
fn reset_msg_id() {
let mut msg = Message::new(MsgType::Time);
msg.reset_id(Uuid::nil());
assert_eq!(msg.get_id(), Uuid::nil());
let id = msg.get_id();
msg.reset_id();
assert_ne!(msg.get_id(), id);
}
}