Enum openraft::ChangeMembers
source · pub enum ChangeMembers<NID: NodeId, N: Node> {
AddVoterIds(BTreeSet<NID>),
AddVoters(BTreeMap<NID, N>),
RemoveVoters(BTreeSet<NID>),
ReplaceAllVoters(BTreeSet<NID>),
AddNodes(BTreeMap<NID, N>),
SetNodes(BTreeMap<NID, N>),
RemoveNodes(BTreeSet<NID>),
ReplaceAllNodes(BTreeMap<NID, N>),
}
Expand description
Defines various actions to change the membership, including adding or removing learners or voters.
Variants§
AddVoterIds(BTreeSet<NID>)
Upgrade learners to voters.
The learners have to present or error::LearnerNotFound
error will be returned.
AddVoters(BTreeMap<NID, N>)
Add voters with corresponding nodes.
RemoveVoters(BTreeSet<NID>)
Remove voters, leave removed voters as learner or not.
ReplaceAllVoters(BTreeSet<NID>)
Replace voter ids with a new set. The node of every new voter has to already be a learner.
AddNodes(BTreeMap<NID, N>)
Add nodes to membership, as learners.
it WONT replace existing node.
Prefer using this variant instead of SetNodes
whenever possible, as AddNodes
ensures
safety, whereas incorrect usage of SetNodes
can result in a brain split.
See: Update-Node
SetNodes(BTreeMap<NID, N>)
Add or replace nodes in membership config.
it WILL replace existing node.
Prefer using AddNodes
instead of SetNodes
whenever possible, as AddNodes
ensures
safety, whereas incorrect usage of SetNodes
can result in a brain split.
See: Update-Node
RemoveNodes(BTreeSet<NID>)
Remove nodes from membership.
If a node is still a voter, it returns
error::LearnerNotFound
error.
ReplaceAllNodes(BTreeMap<NID, N>)
Replace all nodes with a new set.
Every voter has to have a corresponding node in the new
set, otherwise it returns error::LearnerNotFound
error.
Trait Implementations§
source§impl<NID: Clone + NodeId, N: Clone + Node> Clone for ChangeMembers<NID, N>
impl<NID: Clone + NodeId, N: Clone + Node> Clone for ChangeMembers<NID, N>
source§fn clone(&self) -> ChangeMembers<NID, N>
fn clone(&self) -> ChangeMembers<NID, N>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<'de, NID: NodeId, N: Node> Deserialize<'de> for ChangeMembers<NID, N>
impl<'de, NID: NodeId, N: Node> Deserialize<'de> for ChangeMembers<NID, N>
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl<NID, N, I> From<I> for ChangeMembers<NID, N>
impl<NID, N, I> From<I> for ChangeMembers<NID, N>
Convert a series of ids to a Replace
operation.
source§impl<NID: PartialEq + NodeId, N: PartialEq + Node> PartialEq for ChangeMembers<NID, N>
impl<NID: PartialEq + NodeId, N: PartialEq + Node> PartialEq for ChangeMembers<NID, N>
source§fn eq(&self, other: &ChangeMembers<NID, N>) -> bool
fn eq(&self, other: &ChangeMembers<NID, N>) -> bool
self
and other
values to be equal, and is used
by ==
.