gameServer2/src/server/server.rs
changeset 14371 31717e1436cd
parent 13810 0463a4221327
equal deleted inserted replaced
14370:d35e0fdb70f6 14371:31717e1436cd
   105     pub fn has_room(&self, name: &str) -> bool {
   105     pub fn has_room(&self, name: &str) -> bool {
   106         self.rooms.iter().any(|(_, r)| r.name == name)
   106         self.rooms.iter().any(|(_, r)| r.name == name)
   107     }
   107     }
   108 
   108 
   109     pub fn find_room(&self, name: &str) -> Option<&HWRoom> {
   109     pub fn find_room(&self, name: &str) -> Option<&HWRoom> {
   110         self.rooms.iter().find(|(_, r)| r.name == name).map(|(_, r)| r)
   110         self.rooms.iter().find_map(|(_, r)| Some(r).filter(|r| r.name == name))
   111     }
   111     }
   112 
   112 
   113     pub fn find_room_mut(&mut self, name: &str) -> Option<&mut HWRoom> {
   113     pub fn find_room_mut(&mut self, name: &str) -> Option<&mut HWRoom> {
   114         self.rooms.iter_mut().find(|(_, r)| r.name == name).map(|(_, r)| r)
   114         self.rooms.iter_mut().find_map(|(_, r)| Some(r).filter(|r| r.name == name))
   115     }
   115     }
   116 
   116 
   117     pub fn find_client(&self, nick: &str) -> Option<&HWClient> {
   117     pub fn find_client(&self, nick: &str) -> Option<&HWClient> {
   118         self.clients.iter().find(|(_, c)| c.nick == nick).map(|(_, c)| c)
   118         self.clients.iter().find_map(|(_, c)| Some(c).filter(|c| c.nick == nick))
   119     }
   119     }
   120 
   120 
   121     pub fn find_client_mut(&mut self, nick: &str) -> Option<&mut HWClient> {
   121     pub fn find_client_mut(&mut self, nick: &str) -> Option<&mut HWClient> {
   122         self.clients.iter_mut().find(|(_, c)| c.nick == nick).map(|(_, c)| c)
   122         self.clients.iter_mut().find_map(|(_, c)| Some(c).filter(|c| c.nick == nick))
   123     }
   123     }
   124 
   124 
   125     pub fn select_clients<F>(&self, f: F) -> Vec<ClientId>
   125     pub fn select_clients<F>(&self, f: F) -> Vec<ClientId>
   126         where F: Fn(&(usize, &HWClient)) -> bool {
   126         where F: Fn(&(usize, &HWClient)) -> bool {
   127         self.clients.iter().filter(f)
   127         self.clients.iter().filter(f)