pub enum ConsistentReadReject {
Empty,
Unroutable {
collection: CollectionId,
key: Vec<u8>,
},
NoSafeSnapshot,
WatermarkGap {
collection: CollectionId,
range_id: RangeId,
},
}Expand description
Why a consistent cross-range read could not be planned.
Variants§
Empty
The read named no targets.
Unroutable
A targeted key resolves to no range of its collection.
NoSafeSnapshot
No safe snapshot was supplied. A cross-range read cannot be served consistently without a global watermark, so the request fails clearly rather than silently degrading to a best-effort fanout.
WatermarkGap
The supplied snapshot does not cover a targeted range, so the read cannot be pinned to a single safe point across all of its ranges.
Trait Implementations§
Source§impl Clone for ConsistentReadReject
impl Clone for ConsistentReadReject
Source§fn clone(&self) -> ConsistentReadReject
fn clone(&self) -> ConsistentReadReject
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 ConsistentReadReject
impl Debug for ConsistentReadReject
Source§impl Display for ConsistentReadReject
impl Display for ConsistentReadReject
impl Eq for ConsistentReadReject
Source§impl Error for ConsistentReadReject
impl Error for ConsistentReadReject
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 ConsistentReadReject
impl PartialEq for ConsistentReadReject
Source§fn eq(&self, other: &ConsistentReadReject) -> bool
fn eq(&self, other: &ConsistentReadReject) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ConsistentReadReject
Auto Trait Implementations§
impl Freeze for ConsistentReadReject
impl RefUnwindSafe for ConsistentReadReject
impl Send for ConsistentReadReject
impl Sync for ConsistentReadReject
impl Unpin for ConsistentReadReject
impl UnsafeUnpin for ConsistentReadReject
impl UnwindSafe for ConsistentReadReject
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