pub struct TooManyRequests<P>where
P: RetryPolicy,{ /* private fields */ }Expand description
A retry policy decorator that continues on ResourceExhausted or
TOO_MANY_REQUESTS.
This policy returns RetryResult::Continue when the error is a
ResourceExhausted (or TOO_MANY_REQUESTS if received from the HTTP layer).
Otherwise it returns the result from the inner retry policy.
§Parameters
P- the inner retry policy.
Implementations§
Source§impl<P> TooManyRequests<P>where
P: RetryPolicy,
impl<P> TooManyRequests<P>where
P: RetryPolicy,
Sourcepub fn new(inner: P) -> Self
pub fn new(inner: P) -> Self
Creates a new instance with a custom inner policy.
§Example
use google_cloud_gax::retry_policy::Aip194Strict;
use google_cloud_gax::retry_state::RetryState;
let policy = TooManyRequests::new(Aip194Strict);
assert!(policy.on_error(&RetryState::new(true).set_attempt_count(1_u32), too_many()).is_continue());
assert!(policy.on_error(&RetryState::new(true).set_attempt_count(2_u32), permanent()).is_permanent());
use google_cloud_gax::error::{Error, rpc::Code, rpc::Status};
fn too_many() -> Error { Error::service(Status::default().set_code(Code::ResourceExhausted)) }
fn permanent() -> Error { Error::service(Status::default().set_code(Code::PermissionDenied)) }Trait Implementations§
Source§impl<P> Debug for TooManyRequests<P>where
P: RetryPolicy + Debug,
impl<P> Debug for TooManyRequests<P>where
P: RetryPolicy + Debug,
impl<P> RetryPolicy for TooManyRequests<P>where
P: RetryPolicy,
Auto Trait Implementations§
impl<P> Freeze for TooManyRequests<P>where
P: Freeze,
impl<P> RefUnwindSafe for TooManyRequests<P>where
P: RefUnwindSafe,
impl<P> Send for TooManyRequests<P>
impl<P> Sync for TooManyRequests<P>
impl<P> Unpin for TooManyRequests<P>where
P: Unpin,
impl<P> UnsafeUnpin for TooManyRequests<P>where
P: UnsafeUnpin,
impl<P> UnwindSafe for TooManyRequests<P>where
P: UnwindSafe,
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
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> RetryPolicyExt for Twhere
T: RetryPolicy,
impl<T> RetryPolicyExt for Twhere
T: RetryPolicy,
Source§fn with_time_limit(self, maximum_duration: Duration) -> LimitedElapsedTime<Self>
fn with_time_limit(self, maximum_duration: Duration) -> LimitedElapsedTime<Self>
Decorate a RetryPolicy to limit the total elapsed time in the retry loop. Read more
Source§fn with_attempt_limit(self, maximum_attempts: u32) -> LimitedAttemptCount<Self>
fn with_attempt_limit(self, maximum_attempts: u32) -> LimitedAttemptCount<Self>
Decorate a RetryPolicy to limit the number of retry attempts. Read more
Source§fn continue_on_too_many_requests(self) -> TooManyRequests<Self>
fn continue_on_too_many_requests(self) -> TooManyRequests<Self>
Decorate a RetryPolicy to continue on certain status codes. Read more
Source§fn continue_on_client_timeout(self) -> ClientTimeout<Self>
fn continue_on_client_timeout(self) -> ClientTimeout<Self>
Decorate a RetryPolicy to continue on client-side timeouts. Read more