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); |