pub struct ThrottleResponse {
pub allowed: bool,
pub limit: i64,
pub remaining: i64,
pub reset_after: i64,
pub retry_after: i64,
}Expand description
Rate limit response structure
This is the common response format returned by all transports after checking a rate limit.
§Response Interpretation
- If
allowedis true: The request can proceed - If
allowedis false: The request should be rejected- Check
retry_afterto know when to retry - Check
reset_afterto know when the bucket resets
- Check
§Example
{
"allowed": false,
"limit": 10,
"remaining": 0,
"retry_after": 30,
"reset_after": 60
}This response indicates the request was denied, no tokens remain, retry in 30 seconds, and the bucket fully resets in 60 seconds.
Fields§
§allowed: boolWhether the request is allowed
limit: i64Maximum burst capacity
remaining: i64Tokens remaining in the bucket
reset_after: i64Seconds until the bucket fully resets
retry_after: i64Seconds until the next request can be made (0 if allowed)
Trait Implementations§
Source§impl Clone for ThrottleResponse
impl Clone for ThrottleResponse
Source§fn clone(&self) -> ThrottleResponse
fn clone(&self) -> ThrottleResponse
Returns a duplicate 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 ThrottleResponse
impl Debug for ThrottleResponse
Source§impl<'de> Deserialize<'de> for ThrottleResponse
impl<'de> Deserialize<'de> for ThrottleResponse
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<(bool, RateLimitResult)> for ThrottleResponse
impl From<(bool, RateLimitResult)> for ThrottleResponse
Source§fn from((allowed, result): (bool, RateLimitResult)) -> Self
fn from((allowed, result): (bool, RateLimitResult)) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for ThrottleResponse
impl RefUnwindSafe for ThrottleResponse
impl Send for ThrottleResponse
impl Sync for ThrottleResponse
impl Unpin for ThrottleResponse
impl UnwindSafe for ThrottleResponse
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> 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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request