Refactored message id reset.
This commit is contained in:
		@@ -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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user