pub enum RangeRole {
Owner,
Replica,
NoCopy,
}Expand description
A data member’s role for one specific range (issue #990, PRD #987).
Distinguishes the three positions a node can hold relative to a range, which
the ownership-aware write gate
(admit_public_write) turns
into an allow/reject decision: only the current Owner may
take a public write for the range; a Replica and a
NoCopy node both reject it and the caller must route to the
owner. (A replica still applies the owner’s changes through the privileged
internal apply path — that path is gated by the range-authority fence from
issue #991, not by this public gate.)
Variants§
Owner
The current single writer for the range — the only role a public write may land on.
Replica
Holds a read/catch-up copy but is not the writer. Public writes are rejected and routed to the owner; replicated changes still flow in via the privileged internal apply path.
NoCopy
Holds no copy of the range at all.
Implementations§
Trait Implementations§
impl Copy for RangeRole
impl Eq for RangeRole
impl StructuralPartialEq for RangeRole
Auto Trait Implementations§
impl Freeze for RangeRole
impl RefUnwindSafe for RangeRole
impl Send for RangeRole
impl Sync for RangeRole
impl Unpin for RangeRole
impl UnsafeUnpin for RangeRole
impl UnwindSafe for RangeRole
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request