pub enum ReadFanoutPolicy {
SingleOwnerOnly,
ExplicitFanout {
budget: ReadFanoutBudget,
allow_partial: bool,
},
}Expand description
The explicit policy a caller supplies before a read may fan out.
The default posture is SingleOwnerOnly: a read that
would cross owners is rejected before execution. To scatter, a caller must
choose ExplicitFanout and provide a
ReadFanoutBudget. That is the ADR 0055 contract in code: no hidden,
unbounded fanout path for cold-cache or missing-shard-key query shapes.
Variants§
SingleOwnerOnly
Only reads that resolve to one owner are admitted.
ExplicitFanout
Cross-owner fanout is allowed, bounded, and marked with partial-result policy for the executor/transport.
Implementations§
Source§impl ReadFanoutPolicy
impl ReadFanoutPolicy
pub fn single_owner_only() -> ReadFanoutPolicy
pub fn explicit(budget: ReadFanoutBudget) -> ReadFanoutPolicy
pub fn allowing_partial(self) -> ReadFanoutPolicy
Trait Implementations§
Source§impl Clone for ReadFanoutPolicy
impl Clone for ReadFanoutPolicy
Source§fn clone(&self) -> ReadFanoutPolicy
fn clone(&self) -> ReadFanoutPolicy
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 ReadFanoutPolicy
Source§impl Debug for ReadFanoutPolicy
impl Debug for ReadFanoutPolicy
Source§impl Default for ReadFanoutPolicy
impl Default for ReadFanoutPolicy
Source§fn default() -> ReadFanoutPolicy
fn default() -> ReadFanoutPolicy
Returns the “default value” for a type. Read more
impl Eq for ReadFanoutPolicy
Source§impl PartialEq for ReadFanoutPolicy
impl PartialEq for ReadFanoutPolicy
impl StructuralPartialEq for ReadFanoutPolicy
Auto Trait Implementations§
impl Freeze for ReadFanoutPolicy
impl RefUnwindSafe for ReadFanoutPolicy
impl Send for ReadFanoutPolicy
impl Sync for ReadFanoutPolicy
impl Unpin for ReadFanoutPolicy
impl UnsafeUnpin for ReadFanoutPolicy
impl UnwindSafe for ReadFanoutPolicy
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