pub enum RemovalRejection {
NotAMember {
member: NodeIdentity,
},
NotDraining {
member: NodeIdentity,
},
StillOwnsRanges {
member: NodeIdentity,
ranges: Vec<(CollectionId, RangeId)>,
},
StillReplicaFor {
member: NodeIdentity,
ranges: Vec<(CollectionId, RangeId)>,
},
}Expand description
Why a membership removal was refused. Every variant leaves both catalogs untouched — a planned removal fails closed while any dependency remains.
Variants§
NotAMember
The node is not a member of this cluster.
Fields
§
member: NodeIdentityNotDraining
The member has not been marked draining. Planned removal must mark a member
Draining first (use
MembershipCatalog::begin_drain); force-remove is the path for a member
that was never drained.
Fields
§
member: NodeIdentityStillOwnsRanges
The member still owns these ranges — removing it would orphan their write authority. Drain must hand them off first.
StillReplicaFor
The member still holds replica copies of these ranges — removing it would drop required copies. Drain must evacuate them first.
Trait Implementations§
Source§impl Clone for RemovalRejection
impl Clone for RemovalRejection
Source§fn clone(&self) -> RemovalRejection
fn clone(&self) -> RemovalRejection
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 RemovalRejection
impl Debug for RemovalRejection
Source§impl Display for RemovalRejection
impl Display for RemovalRejection
impl Eq for RemovalRejection
Source§impl Error for RemovalRejection
impl Error for RemovalRejection
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 RemovalRejection
impl PartialEq for RemovalRejection
Source§fn eq(&self, other: &RemovalRejection) -> bool
fn eq(&self, other: &RemovalRejection) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for RemovalRejection
Auto Trait Implementations§
impl Freeze for RemovalRejection
impl RefUnwindSafe for RemovalRejection
impl Send for RemovalRejection
impl Sync for RemovalRejection
impl Unpin for RemovalRejection
impl UnsafeUnpin for RemovalRejection
impl UnwindSafe for RemovalRejection
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