pub enum DurableWriteReject {
NoRange {
collection: CollectionId,
},
NotOwner {
collection: CollectionId,
range_id: RangeId,
role: RangeRole,
owner: NodeIdentity,
},
Fenced {
collection: CollectionId,
range_id: RangeId,
reason: FenceReason,
},
}Expand description
Why a lease-gated durable write was rejected — either the catalog ownership gate refused it (routing / not-owner), or the owner is self-fenced.
Variants§
NoRange
No range of the collection covers the routed key — re-resolve routing.
Fields
§
collection: CollectionIdNotOwner
This node is not the catalog owner of the routed range (it is a replica or
holds no copy). The write must be routed to owner.
Fenced
This node is the catalog owner, but it is self-fenced: it holds no valid
lease for the range. Carries the FenceReason.
Trait Implementations§
Source§impl Clone for DurableWriteReject
impl Clone for DurableWriteReject
Source§fn clone(&self) -> DurableWriteReject
fn clone(&self) -> DurableWriteReject
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DurableWriteReject
impl Debug for DurableWriteReject
Source§impl Display for DurableWriteReject
impl Display for DurableWriteReject
impl Eq for DurableWriteReject
Source§impl Error for DurableWriteReject
impl Error for DurableWriteReject
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl PartialEq for DurableWriteReject
impl PartialEq for DurableWriteReject
Source§fn eq(&self, other: &DurableWriteReject) -> bool
fn eq(&self, other: &DurableWriteReject) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for DurableWriteReject
Auto Trait Implementations§
impl Freeze for DurableWriteReject
impl RefUnwindSafe for DurableWriteReject
impl Send for DurableWriteReject
impl Sync for DurableWriteReject
impl Unpin for DurableWriteReject
impl UnsafeUnpin for DurableWriteReject
impl UnwindSafe for DurableWriteReject
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
Mutably borrows from an owned value. Read more
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
Compare self to
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>
Converts
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>
Converts
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>
Wrap the input message
T in a tonic::Request