pub async fn remove_voter(&self, old_voter: NodeId) -> Result<(), ChangeConfigError> {
        let (tx, rx) = oneshot::channel();
        self.inner
            .tx_api
            .send(RaftMsg::RemoveVoter { id: old_voter, tx })
            .map_err(|_| RaftError::ShuttingDown)?;
        Ok(rx
            .await
            .map_err(|_| ChangeConfigError::RaftError(RaftError::ShuttingDown))
            .and_then(|res| res)?)
    }
/// Request the removal of the specified Voter node from the cluster. Will return once the
/// configuration change has finished.
///
/// Please note, that it is not guaranteed to be safe to immediately shut down the removed node
/// once this call returns. The node is only safe to be shut down once it replicated the config
/// change. Afterwards, it will not receive entries anymore. Shutting down the node early will
/// cause the cluster leader to constantly attempt to replicate the config change to the removed
/// node.
///
/// If this Raft node is not the cluster leader or there is already another configuration change
/// in progress, then the change will be rejected.
Request the removal of the specified Voter node from the cluster. Will return once the
configuration change has finished.

Please note, that it is not guaranteed to be safe to immediately shut down the removed node
once this call returns. The node is only safe to be shut down once it replicated the config
change. Afterwards, it will not receive entries anymore. Shutting down the node early will
cause the cluster leader to constantly attempt to replicate the config change to the removed
node.

If this Raft node is not the cluster leader or there is already another configuration change
in progress, then the change will be rejected.
Request the removal of the specified Voter node from the cluster . Will return once the configuration change has finished . Please note that it is not guaranteed to be safe to immediately shut down the removed node once this call returns . The node is only safe to be shut down once it replicated the config change . Afterwards it will not receive entries anymore . Shutting down the node early will cause the cluster leader to constantly attempt to replicate the config change to the removed node . If this Raft node is not the cluster leader or there is already another configuration change in progress then the change will be rejected .
pub async fn remove_voter(&self, old_voter: NodeId) -> Result<(), ChangeConfigError> {
        let (tx, rx) = oneshot::channel();
        self.inner
            .tx_api
            .send(RaftMsg::RemoveVoter { id: old_voter, tx })
            .map_err(|_| RaftError::ShuttingDown)?;
        Ok(rx
            .await
            .map_err(|_| ChangeConfigError::RaftError(RaftError::ShuttingDown))
            .and_then(|res| res)?)
    }
pub async fn remove_voter ( & self , old_voter : NodeId ) -> Result < ( ) , ChangeConfigError > { let ( tx , rx ) = oneshot :: channel ( ) ; self . inner . tx_api . send ( RaftMsg :: RemoveVoter { id : old_voter , tx } ) . map_err ( | _ | RaftError :: ShuttingDown ) ? ; Ok ( rx . await . map_err ( | _ | ChangeConfigError :: RaftError ( RaftError :: ShuttingDown ) ) . and_then ( | res | res ) ? ) }
Request the removal of the specified Voter node from the cluster.
Request the removal of the specified Voter node from the cluster .
&self
old_voter
NodeId
&self
old_voter
NodeId