pub enum ThrottleResult {
Exhausted(Error),
Continue(Error),
}Expand description
The result of a retry throttling control decision.
The client libraries retry loop may throttle some retry attempts, that is, the request previously failed, it is retryable, but the policies in the loop have reached some limit or budget on the number of retry attempts. In such cases the retry attempt is not started, and the retry policy is consulted to determine if the retry loop should continue.
The retry policy receives the previous error, and should return whether the loop continues after the throttled attempt.
§Example
#[derive(Debug)]
struct MyRetryPolicy;
impl google_cloud_gax::retry_policy::RetryPolicy for MyRetryPolicy {
fn on_throttle(&self, state: &RetryState, error: Error) -> ThrottleResult {
// Always stop the loop
ThrottleResult::Exhausted(error)
}
fn on_error(&self, state: &RetryState, error: Error) -> RetryResult {
}
}Variants§
Exhausted(Error)
The error is retryable, but the policy is stopping the loop.
Loop control policies may stop the loop on retryable errors, for example, because the policy only allows a limited number of attempts.
Continue(Error)
The error was retryable, continue the loop.