struct VerifyPoll {
polls: Vec<Poll>,
}Expand description
Polls the rows that have something to poll by.
Fields§
§polls: Vec<Poll>Trait Implementations§
Source§impl SuotarBatchPhase for VerifyPoll
impl SuotarBatchPhase for VerifyPoll
Source§async fn prepare(
&mut self,
_ctx: &PhaseContext<'_>,
_conn: &mut PgConnection,
_scope: &PhaseScope,
) -> Result<Prepared<Self::Row, Self::Item>>
async fn prepare( &mut self, _ctx: &PhaseContext<'_>, _conn: &mut PgConnection, _scope: &PhaseScope, ) -> Result<Prepared<Self::Row, Self::Item>>
The rows are claimed by the phase itself, which splits them between this flow and the recovery one, so there is nothing left to decide here.
Source§async fn apply_request_rejection(
&self,
conn: &mut PgConnection,
poll: &Self::Row,
request: &Value,
error: &UtilError,
) -> Result<bool>
async fn apply_request_rejection( &self, conn: &mut PgConnection, poll: &Self::Row, request: &Value, error: &UtilError, ) -> Result<bool>
Deliberately not the shared request-level outcome: a failure to ask proves nothing was or
was not created, and moving the row towards failed_retryable would let an admin resubmit
it. The iteration is still reported as failed, so the breaker sees it.
Source§const ALL_TRANSIENT_ERROR: &'static str = "Every verify poll came back transiently unavailable."
const ALL_TRANSIENT_ERROR: &'static str = "Every verify poll came back transiently unavailable."
The iteration’s error when every item came back transiently unavailable.
Source§type Item = VerifyAttainmentRequestItem
type Item = VerifyAttainmentRequestItem
The request item, which is also what the audit log records as sent.
Source§type Result = VerifyAttainmentResult
type Result = VerifyAttainmentResult
The endpoint’s per-item result body.
fn registration(poll: &Self::Row) -> &CreditRegistration
Source§fn request_item_id(poll: &Self::Row) -> String
fn request_item_id(poll: &Self::Row) -> String
What the row was addressed as, and so how its answer is found again.
async fn send( &self, ctx: &PhaseContext<'_>, rows: &[Self::Row], items: Vec<Self::Item>, ) -> Result<SuotarBatchResponse<Self::Result>, UtilError>
Source§async fn apply(
&self,
conn: &mut PgConnection,
poll: &Self::Row,
item: Option<&SuotarResponseItem<Self::Result>>,
event: OutcomeEvent<'_>,
) -> Result<bool>
async fn apply( &self, conn: &mut PgConnection, poll: &Self::Row, item: Option<&SuotarResponseItem<Self::Result>>, event: OutcomeEvent<'_>, ) -> Result<bool>
Applies one answer, or the absence of one, to its row. Returns whether the row ended up in a
failure state; errors with
PreconditionFailed if another writer moved the row meanwhile.Auto Trait Implementations§
impl Freeze for VerifyPoll
impl RefUnwindSafe for VerifyPoll
impl Send for VerifyPoll
impl Sync for VerifyPoll
impl Unpin for VerifyPoll
impl UnsafeUnpin for VerifyPoll
impl UnwindSafe for VerifyPoll
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> ⓘ
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