Skip to main content

SovereignRole

Enum SovereignRole 

Source
pub enum SovereignRole {
    Voter,
    NonVoter,
}
Expand description

Whether a node in a sovereign group may hold a seat in that group’s quorum — R605-F12.

This is not a placement input and not a taint. It narrows a Membership, and the single thing that reads it is join_permitted.

Self::Voter is the default because it is what every already-stamped node means today: before this enum existed, declaring a group was declaring quorum eligibility, so absence has to keep meaning that or the field would silently retire six live voters. The permissiveness is bounded by the group still being mandatory — a box cannot drift into a quorum without an operator naming the group first — and the camp lints the omission at the layer that can see the whole fleet (cloud::validate::check_unroled_sovereign_members), rather than here, where refusing to deserialize would break every node that predates the field.

Variants§

§

Voter

Quorum-eligible: may be joined into its group’s cluster.

§

NonVoter

In the group’s blast radius — shares its upgrade cadence, its secrets, its destruction — but never a quorum seat. Refused by join_permitted on either side of a join.

Consequently a node stamped this way is absent from its group’s /raft/status members map, and that absence is correct — see the module docs’ “Reading a live cluster” section before reporting it as declared-vs-actual drift. A prod worker holding no seat is the whole point of the variant.

Implementations§

Source§

impl SovereignRole

Source

pub fn as_str(&self) -> &'static str

The wire/TOML spelling: "voter" / "non-voter". Matches the serde rename so the CLI flag, the TOML value and the /raft/status JSON can never disagree about how the value is written.

Source

pub fn is_voter(&self) -> bool

True for Self::Voter. Named rather than matched at call sites so the join rule reads as one predicate.

Trait Implementations§

Source§

impl Clone for SovereignRole

Source§

fn clone(&self) -> SovereignRole

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for SovereignRole

Source§

impl Debug for SovereignRole

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SovereignRole

Source§

fn default() -> SovereignRole

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for SovereignRole

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for SovereignRole

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for SovereignRole

Source§

impl FromStr for SovereignRole

Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses the two legal spellings and nothing else. The error names both, because this is reached from a CLI flag where the operator has a typo in hand and no schema to consult.

Source§

type Err = String

The associated error which can be returned from parsing.
Source§

impl PartialEq for SovereignRole

Source§

fn eq(&self, other: &SovereignRole) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for SovereignRole

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for SovereignRole

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.