Promote a learner to a voter within a group. Returns `true` if the learner was found and promoted.
(&mut self, group_id: u64, peer: u64)
| 228 | /// Promote a learner to a voter within a group. Returns `true` if the |
| 229 | /// learner was found and promoted. |
| 230 | pub fn promote_group_learner(&mut self, group_id: u64, peer: u64) -> bool { |
| 231 | if let Some(info) = self.group_members.get_mut(&group_id) |
| 232 | && let Some(pos) = info.learners.iter().position(|&id| id == peer) |
| 233 | { |
| 234 | info.learners.remove(pos); |
| 235 | if !info.members.contains(&peer) { |
| 236 | info.members.push(peer); |
| 237 | } |
| 238 | return true; |
| 239 | } |
| 240 | false |
| 241 | } |
| 242 | |
| 243 | /// Access the vshard-to-group mapping (for persistence / wire transfer). |
| 244 | pub fn vshard_to_group(&self) -> &[u64] { |