#[non_exhaustive]pub enum RetryDecision {
Fdb(FdbError),
Retry,
Fatal,
}Expand description
What the retry loop of crate::Database::run does with a closure error.
Produced by RetryableError::retry_decision. In every case the C API
remains the single retry governor: backoff, max retry delay and
TransactionOption::RetryLimit are applied by fdb_transaction_on_error,
never by a Rust-side budget.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Fdb(FdbError)
The error is, or wraps, this FdbError: hand it to on_error and let
the C API judge retryability.
Retry
App-level retry request with no native error underneath (lock
contention, optimistic-concurrency conditions). Routed through
on_error with code 1020 (not_committed, retryable by definition), so
backoff and retry limits apply uniformly.
Fatal
Not retryable: the loop returns the original error to the caller as-is.
Trait Implementations§
Source§impl Clone for RetryDecision
impl Clone for RetryDecision
Source§fn clone(&self) -> RetryDecision
fn clone(&self) -> RetryDecision
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RetryDecision
impl Debug for RetryDecision
impl Copy for RetryDecision
Auto Trait Implementations§
impl Freeze for RetryDecision
impl RefUnwindSafe for RetryDecision
impl Send for RetryDecision
impl Sync for RetryDecision
impl Unpin for RetryDecision
impl UnwindSafe for RetryDecision
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