pub enum RequestOperation {
SafePointOp,
Transaction,
Streaming,
ExplicitlyUnsafe,
}Expand description
What a request asks the cluster to do, reduced to just what routing needs to decide forward-vs-redirect.
Only SafePointOp is eligible for hidden internal
forwarding. The other classes are exactly PRD #987’s “must not be silently
forwarded” set: their correctness is tied to running on the owner directly, so
a non-owner must redirect rather than relay them.
Variants§
SafePointOp
A single-key point read or write — the one class safe to forward to the owner, because its result does not depend on which node relays it.
Transaction
A multi-statement transaction. Atomicity and session state must be established on the owner directly; never hidden-forwarded.
Streaming
A streaming / cursor operation (scan, subscribe, change feed). The stream must originate on the owner; never hidden-forwarded.
ExplicitlyUnsafe
An operation the caller has explicitly flagged as unsafe to forward.
Trait Implementations§
Source§impl Clone for RequestOperation
impl Clone for RequestOperation
Source§fn clone(&self) -> RequestOperation
fn clone(&self) -> RequestOperation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RequestOperation
Source§impl Debug for RequestOperation
impl Debug for RequestOperation
impl Eq for RequestOperation
Source§impl PartialEq for RequestOperation
impl PartialEq for RequestOperation
Source§fn eq(&self, other: &RequestOperation) -> bool
fn eq(&self, other: &RequestOperation) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for RequestOperation
Auto Trait Implementations§
impl Freeze for RequestOperation
impl RefUnwindSafe for RequestOperation
impl Send for RequestOperation
impl Sync for RequestOperation
impl Unpin for RequestOperation
impl UnsafeUnpin for RequestOperation
impl UnwindSafe for RequestOperation
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