#[non_exhaustive]pub enum ProjectionResetError {
Busy,
LeadershipLost {
source: BoxedProjectionError,
},
SourceIdentityMismatch {
projector: ProjectorName,
persisted: DeliverySourceId,
configured: DeliverySourceId,
},
SelectionIdentityMismatch {
projector: ProjectorName,
persisted: ProjectionSelectionId,
configured: ProjectionSelectionId,
},
Callback {
source: BoxedProjectionError,
},
Progress {
source: BoxedProjectionError,
},
CommitIndeterminate {
source: BoxedProjectionError,
},
}Expand description
Failures from a coordinated basic reset.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Busy
Another invocation owns this projector’s leadership grant.
LeadershipLost
The leader session was lost while starting, rolling back, or releasing the reset.
A release failure can occur after the reset commit was acknowledged. Callers must not infer from this variant that the reset was rolled back or did not commit.
Fields
source: BoxedProjectionErrorUnderlying database error.
SourceIdentityMismatch
Existing progress belongs to a different delivery source.
Fields
projector: ProjectorNameProjector whose durable identity was incompatible.
persisted: DeliverySourceIdSource identity persisted with durable progress.
configured: DeliverySourceIdSource identity configured for this reset.
SelectionIdentityMismatch
Existing progress belongs to a different projection selection.
Fields
projector: ProjectorNameProjector whose durable identity was incompatible.
persisted: ProjectionSelectionIdSelection identity persisted with durable progress.
configured: ProjectionSelectionIdSelection identity configured for this reset.
Callback
Application reset code failed and its transaction was rolled back.
Fields
source: BoxedProjectionErrorUnderlying application error.
Progress
Progress validation or deletion failed before commit.
Fields
source: BoxedProjectionErrorUnderlying database error.
CommitIndeterminate
PostgreSQL did not acknowledge the reset commit, so durable state is indeterminate.
Fields
source: BoxedProjectionErrorUnderlying database error.
Trait Implementations§
Source§impl Debug for ProjectionResetError
impl Debug for ProjectionResetError
Source§impl Display for ProjectionResetError
impl Display for ProjectionResetError
Source§impl Error for ProjectionResetError
impl Error for ProjectionResetError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl !RefUnwindSafe for ProjectionResetError
impl !UnwindSafe for ProjectionResetError
impl Freeze for ProjectionResetError
impl Send for ProjectionResetError
impl Sync for ProjectionResetError
impl Unpin for ProjectionResetError
impl UnsafeUnpin for ProjectionResetError
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
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> ⓘ
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> ⓘ
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