foundationdb::recipes::leader_election

Enum LocalState

Source
pub enum LocalState {
    Unknown,
    Observation(Observation),
    Leadership(Leadership),
}
Expand description

Caller-owned state carried between successful outer transactions.

No variant is persisted or transferable to another process incarnation. Its timing values belong to the caller’s monotonic clock. Replace it only with PollResult::into_next_state after the enclosing Database::run succeeds.

Variants§

§

Unknown

No durable state has been adopted by this caller.

§

Observation(Observation)

An exact durable owner record this caller is not authorized to renew.

The preserved observation time can permit a conditional takeover only if a later poll sees the same owner, revision, and lease duration.

§

Leadership(Leadership)

The exact durable owner record this caller may attempt to renew locally.

It does not prove current durable ownership. A later poll must still match the record and find this caller’s local lease interval unexpired.

Implementations§

Source§

impl LocalState

Source

pub fn unknown() -> Self

Returns the initial state for a caller that has not adopted a poll result.

Source

pub fn observation(&self) -> Option<&Observation>

Returns the adopted observation, if this caller is following an owner.

None means either no state has been adopted or this caller holds a local leadership token. It does not query durable state.

Source

pub fn leadership(&self) -> Option<&Leadership>

Returns the adopted local leadership token, if any.

The returned token is input to a later super::LeaderElection::poll or super::LeaderElection::resign call, not proof that the caller remains the durable owner.

Trait Implementations§

Source§

impl Clone for LocalState

Source§

fn clone(&self) -> LocalState

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for LocalState

Source§

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

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

impl PartialEq for LocalState

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for LocalState

Source§

impl StructuralPartialEq for LocalState

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, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.