pub(super) struct ResolvePersonIds;Trait Implementations§
Source§impl RegistryBatchFlow for ResolvePersonIds
impl RegistryBatchFlow for ResolvePersonIds
Source§async fn claim(
ctx: &BatchFlowContext<'_>,
conn: &mut PgConnection,
limit: usize,
) -> CreditRegistrationResult<Prepared<LinkMissingPerson, PersonLookup>>
async fn claim( ctx: &BatchFlowContext<'_>, conn: &mut PgConnection, limit: usize, ) -> CreditRegistrationResult<Prepared<LinkMissingPerson, PersonLookup>>
Claims the rows the enrolment lookup would and keeps only those whose link lacks a person id; the others are left for the enrolment lookup.
Source§const ALL_UNAVAILABLE_ERROR: &'static str = "Every person lookup came back unavailable."
const ALL_UNAVAILABLE_ERROR: &'static str = "Every person lookup came back unavailable."
The iteration’s error when every item came back unavailable.
Source§const REFUSAL: RefusalPolicy<LinkMissingPerson> = RefusalPolicy::RequestLevel
const REFUSAL: RefusalPolicy<LinkMissingPerson> = RefusalPolicy::RequestLevel
What the rows get when the study registry refused the whole request, which also decides
whether a batch refused as malformed is split.
Source§type Extra = LinkMissingPerson
type Extra = LinkMissingPerson
What the claim read for each row alongside it, which its answer is applied with.
Source§type Request = PersonLookup
type Request = PersonLookup
What each row asks, which also names the operation it is asked under.
Source§async fn apply_answer(
conn: &mut PgConnection,
row: &Claimed<LinkMissingPerson>,
answer: Option<&PersonAnswer>,
audit: &ExchangeAudit,
) -> CreditRegistrationResult<Applied>
async fn apply_answer( conn: &mut PgConnection, row: &Claimed<LinkMissingPerson>, answer: Option<&PersonAnswer>, audit: &ExchangeAudit, ) -> CreditRegistrationResult<Applied>
Decides what one answer, or the absence of one, does to its row and writes it, with the
exchange behind it. May read and write in transactions of its own on the way.
Source§async fn keep_in_flight(
conn: &mut PgConnection,
rows: &[&Claimed<LinkMissingPerson>],
) -> CreditRegistrationResult<()>
async fn keep_in_flight( conn: &mut PgConnection, rows: &[&Claimed<LinkMissingPerson>], ) -> CreditRegistrationResult<()>
Called before each send after a split, with every row the split still holds, so the ones
waiting their turn are not taken for a worker that died mid-call.
Source§async fn release_unsent(
_conn: &mut PgConnection,
_rows: &[&Claimed<Self::Extra>],
) -> CreditRegistrationResult<()>
async fn release_unsent( _conn: &mut PgConnection, _rows: &[&Claimed<Self::Extra>], ) -> CreditRegistrationResult<()>
Called with every row a split still holds unsent when a shutdown or an error stops the
iteration, each of which would otherwise be condemned as a lost submission.
Auto Trait Implementations§
impl Freeze for ResolvePersonIds
impl RefUnwindSafe for ResolvePersonIds
impl Send for ResolvePersonIds
impl Sync for ResolvePersonIds
impl Unpin for ResolvePersonIds
impl UnsafeUnpin for ResolvePersonIds
impl UnwindSafe for ResolvePersonIds
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