pub struct RoutingPolicy { /* private fields */ }Expand description
How a data member handles requests it does not own.
“Any-node routing is mandatory” (ADR 0037), but forwarding is a policy choice: a deployment (or a single node) may prefer to push routing work onto topology-aware clients and redirect everything instead of relaying. When forwarding is disabled, even a safe point op gets a redirect — this is PRD #987’s “when forwarding is not selected” path.
Implementations§
Source§impl RoutingPolicy
impl RoutingPolicy
Sourcepub fn forwarding() -> RoutingPolicy
pub fn forwarding() -> RoutingPolicy
Forward safe point ops to the owner; redirect everything else. Uses the
DEFAULT_MAX_FORWARD_PAYLOAD budget.
Sourcepub fn redirect_only() -> RoutingPolicy
pub fn redirect_only() -> RoutingPolicy
Never forward — always redirect a non-owner request with a routing hint. The client/router refreshes topology and retries against the owner.
Sourcepub fn with_max_forward_payload(
self,
max_forward_payload: usize,
) -> RoutingPolicy
pub fn with_max_forward_payload( self, max_forward_payload: usize, ) -> RoutingPolicy
Override the maximum payload eligible for internal forwarding.
pub fn forwarding_enabled(&self) -> bool
pub fn max_forward_payload(&self) -> usize
Trait Implementations§
Source§impl Clone for RoutingPolicy
impl Clone for RoutingPolicy
Source§fn clone(&self) -> RoutingPolicy
fn clone(&self) -> RoutingPolicy
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 moreimpl Copy for RoutingPolicy
Source§impl Debug for RoutingPolicy
impl Debug for RoutingPolicy
Source§impl Default for RoutingPolicy
impl Default for RoutingPolicy
Source§fn default() -> RoutingPolicy
fn default() -> RoutingPolicy
Returns the “default value” for a type. Read more
impl Eq for RoutingPolicy
Source§impl PartialEq for RoutingPolicy
impl PartialEq for RoutingPolicy
Source§fn eq(&self, other: &RoutingPolicy) -> bool
fn eq(&self, other: &RoutingPolicy) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for RoutingPolicy
Auto Trait Implementations§
impl Freeze for RoutingPolicy
impl RefUnwindSafe for RoutingPolicy
impl Send for RoutingPolicy
impl Sync for RoutingPolicy
impl Unpin for RoutingPolicy
impl UnsafeUnpin for RoutingPolicy
impl UnwindSafe for RoutingPolicy
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