#[non_exhaustive]pub enum RateLimiterError {
ZeroQuota,
ZeroPeriod,
}Expand description
A limit configuration rejected at construction time.
Returned by Quota::rate when the supplied values
cannot describe a working rate limit. Each variant names exactly which
constraint was violated so the caller can correct the specific field.
The enum is #[non_exhaustive]: future releases may add validation rules
(and therefore variants) without it being a breaking change, so a match on
it must include a wildcard arm.
§Examples
use rate_net::{Quota, RateLimiterError};
use std::time::Duration;
let err = Quota::rate(0, Duration::from_secs(1)).unwrap_err();
assert_eq!(err, RateLimiterError::ZeroQuota);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.
ZeroQuota
The quota limit was zero. A limit that admits nothing per period can
never allow a request; supply a limit of at least 1.
ZeroPeriod
The quota period was zero. The limit accrues per period, so a
zero-length period is undefined (it implies an infinite rate); supply a
non-zero Duration.
Trait Implementations§
Source§impl Clone for RateLimiterError
impl Clone for RateLimiterError
Source§fn clone(&self) -> RateLimiterError
fn clone(&self) -> RateLimiterError
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 RateLimiterError
impl Debug for RateLimiterError
Source§impl Display for RateLimiterError
impl Display for RateLimiterError
Source§impl Error for RateLimiterError
impl Error for RateLimiterError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl ForgeError for RateLimiterError
impl ForgeError for RateLimiterError
Source§fn is_retryable(&self) -> bool
fn is_retryable(&self) -> bool
Returns true if the operation can be retried
Source§fn is_fatal(&self) -> bool
fn is_fatal(&self) -> bool
Returns true if the error is fatal and should terminate the program
Source§fn status_code(&self) -> u16
fn status_code(&self) -> u16
Returns an appropriate HTTP status code for the error
Source§fn user_message(&self) -> String
fn user_message(&self) -> String
Returns a user-facing message that can be shown to end users
Source§fn dev_message(&self) -> String
fn dev_message(&self) -> String
Returns a detailed technical message for developers/logs
Source§impl PartialEq for RateLimiterError
impl PartialEq for RateLimiterError
Source§fn eq(&self, other: &RateLimiterError) -> bool
fn eq(&self, other: &RateLimiterError) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for RateLimiterError
impl Eq for RateLimiterError
impl StructuralPartialEq for RateLimiterError
Auto Trait Implementations§
impl Freeze for RateLimiterError
impl RefUnwindSafe for RateLimiterError
impl Send for RateLimiterError
impl Sync for RateLimiterError
impl Unpin for RateLimiterError
impl UnsafeUnpin for RateLimiterError
impl UnwindSafe for RateLimiterError
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> ForgeErrorRecovery for Twhere
T: ForgeError,
impl<T> ForgeErrorRecovery for Twhere
T: ForgeError,
Source§fn create_retry_policy(&self, max_retries: usize) -> RetryPolicy
fn create_retry_policy(&self, max_retries: usize) -> RetryPolicy
Create a retry policy optimized for this error type
Source§fn retry<F, T, E>(&self, max_retries: usize, operation: F) -> Result<T, E>
fn retry<F, T, E>(&self, max_retries: usize, operation: F) -> Result<T, E>
Execute a fallible operation with retries if this error type is retryable
Source§fn create_circuit_breaker(&self, name: impl Into<String>) -> CircuitBreaker
fn create_circuit_breaker(&self, name: impl Into<String>) -> CircuitBreaker
Create a circuit breaker for operations that might result in this error type