rust/hedgewars-server/src/server/handlers.rs
changeset 14789 18240b308505
parent 14788 6dea1ca64992
child 14791 b889d9e1115f
equal deleted inserted replaced
14788:6dea1ca64992 14789:18240b308505
   164     match destination {
   164     match destination {
   165         Destination::ToSelf => vec![client_id],
   165         Destination::ToSelf => vec![client_id],
   166         Destination::ToId(id) => vec![id],
   166         Destination::ToId(id) => vec![id],
   167         Destination::ToIds(ids) => ids,
   167         Destination::ToIds(ids) => ids,
   168         Destination::ToAll { group, skip_self } => {
   168         Destination::ToAll { group, skip_self } => {
   169             let mut ids = match group {
   169             let mut ids: Vec<_> = match group {
   170                 DestinationGroup::All => server.clients.iter().map(|(id, _)| id).collect(),
   170                 DestinationGroup::All => server.all_clients().collect(),
   171                 DestinationGroup::Lobby => server.collect_lobby_clients(),
   171                 DestinationGroup::Lobby => server.lobby_clients().collect(),
   172                 DestinationGroup::Protocol(proto) => server.protocol_clients(proto),
   172                 DestinationGroup::Protocol(proto) => server.protocol_clients(proto).collect(),
   173                 DestinationGroup::Room(id) => server.collect_room_clients(id),
   173                 DestinationGroup::Room(id) => server.room_clients(id).collect(),
   174             };
   174             };
   175 
   175 
   176             if skip_self {
   176             if skip_self {
   177                 if let Some(index) = ids.iter().position(|id| *id == client_id) {
   177                 if let Some(index) = ids.iter().position(|id| *id == client_id) {
   178                     ids.remove(index);
   178                     ids.remove(index);