fn remove_participant_if_old(&mut self, id: &D::NodeId) -> bool {
        let last_epoch = if let Some(epoch) = self.last_epochs.get(id) {
            *epoch
        } else {
            return false;
        };
        if last_epoch >= self.algo.epoch() {
            return false;
        }
        if id == self.our_id() {
            self.is_removed = true;
        } else {
            if let Some(peer_epoch) = self.peer_epochs.get(id) {
                if last_epoch >= *peer_epoch {
                    return false;
                }
            }
            self.peer_epochs.remove(&id);
            self.outgoing_queue.remove(&id);
        }
        self.last_epochs.remove(&id);
        true
    }
/// Removes a given old participant if it has been scheduled for removal as a result of being
/// superseded by a new set of participants of which it is not a member. The participant is
/// removed if
///
/// 1. its epoch is newer than its last epoch, or
///
/// 2. the epoch of the managed algorithm instance is newer than the last epoch and the sender
/// queue has sent all messages for all epochs up to the last epoch to the participant.
///
/// Returns `true` if the participant has been removed and `false` otherwise.
Removes a given old participant if it has been scheduled for removal as a result of being
superseded by a new set of participants of which it is not a member. The participant is
removed if

1. its epoch is newer than its last epoch, or

2. the epoch of the managed algorithm instance is newer than the last epoch and the sender
queue has sent all messages for all epochs up to the last epoch to the participant.

Returns `true` if the participant has been removed and `false` otherwise.
Removes a given old participant if it has been scheduled for removal as a result of being superseded by a new set of participants of which it is not a member . The participant is removed if 1 . its epoch is newer than its last epoch or 2 . the epoch of the managed algorithm instance is newer than the last epoch and the sender queue has sent all messages for all epochs up to the last epoch to the participant . Returns ` true ` if the participant has been removed and ` false ` otherwise .
fn remove_participant_if_old(&mut self, id: &D::NodeId) -> bool {
        let last_epoch = if let Some(epoch) = self.last_epochs.get(id) {
            *epoch
        } else {
            return false;
        };
        if last_epoch >= self.algo.epoch() {
            return false;
        }
        if id == self.our_id() {
            self.is_removed = true;
        } else {
            if let Some(peer_epoch) = self.peer_epochs.get(id) {
                if last_epoch >= *peer_epoch {
                    return false;
                }
            }
            self.peer_epochs.remove(&id);
            self.outgoing_queue.remove(&id);
        }
        self.last_epochs.remove(&id);
        true
    }
fn remove_participant_if_old ( & mut self , id : & D :: NodeId ) -> bool { let last_epoch = if let Some ( epoch ) = self . last_epochs . get ( id ) { * epoch } else { return false ; } ; if last_epoch >= self . algo . epoch ( ) { return false ; } if id == self . our_id ( ) { self . is_removed = true ; } else { if let Some ( peer_epoch ) = self . peer_epochs . get ( id ) { if last_epoch >= * peer_epoch { return false ; } } self . peer_epochs . remove ( & id ) ; self . outgoing_queue . remove ( & id ) ; } self . last_epochs . remove ( & id ) ; true }
Removes a given old participant if it has been scheduled for removal as a result of being
superseded by a new set of participants of which it is not a member.
Removes a given old participant if it has been scheduled for removal as a result of being superseded by a new set of participants of which it is not a member .
&mut self
id
&D::NodeId
&mut self
id
&D::NodeId