pub(crate) enum RefusalPolicy<Extra> {
RequestLevel,
KeepWaiting {
outcome: fn(&Claimed<Extra>, DateTime<Utc>) -> Outcome,
message: &'static str,
},
}Expand description
What a flow’s rows get when the whole request was refused. One per flow, so whether its batches may be split is known before any row is looked at.
Variants§
RequestLevel
The shared request-level outcome. A malformed-request refusal proves nothing was acted on, and may be down to one row alone, so the batch is split in halves until the rows it keeps refusing are alone in theirs.
KeepWaiting
Whatever the refusal, the row keeps waiting where it is, as outcome says for it: a failure
to ask proves nothing about a submission that may have landed. Never split.
Implementations§
Source§impl<Extra> RefusalPolicy<Extra>
impl<Extra> RefusalPolicy<Extra>
Sourcepub(crate) fn may_split(&self) -> bool
pub(crate) fn may_split(&self) -> bool
Whether a malformed-request refusal of several rows may be split to find the one to blame.
Sourcepub(crate) fn decision<'a>(
&self,
row: &Claimed<Extra>,
operation: RegistryOperation,
error: &'a RegistryError,
refused_for: RefusedFor,
now: DateTime<Utc>,
) -> Decision<'a>
pub(crate) fn decision<'a>( &self, row: &Claimed<Extra>, operation: RegistryOperation, error: &'a RegistryError, refused_for: RefusedFor, now: DateTime<Utc>, ) -> Decision<'a>
The decision for row of a request of operation the registry refused. A row refused alone
needs a human, since resending cannot fix it.
Auto Trait Implementations§
impl<Extra> Freeze for RefusalPolicy<Extra>
impl<Extra> RefUnwindSafe for RefusalPolicy<Extra>
impl<Extra> Send for RefusalPolicy<Extra>
impl<Extra> Sync for RefusalPolicy<Extra>
impl<Extra> Unpin for RefusalPolicy<Extra>
impl<Extra> UnsafeUnpin for RefusalPolicy<Extra>
impl<Extra> UnwindSafe for RefusalPolicy<Extra>
Blanket Implementations§
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ServiceExt for T
impl<T> ServiceExt for T
§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
Decompress response bodies. Read more
§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more