pub struct RateLimiterHandle {
pub metrics: Arc<Metrics>,
/* private fields */
}Expand description
Handle to communicate with the rate limiter actor
This handle can be cloned and shared across multiple tasks/threads. All operations are async and non-blocking.
Fields§
§metrics: Arc<Metrics>Implementations§
Source§impl RateLimiterHandle
impl RateLimiterHandle
Sourcepub async fn throttle(
&self,
request: ThrottleRequest,
) -> Result<ThrottleResponse>
pub async fn throttle( &self, request: ThrottleRequest, ) -> Result<ThrottleResponse>
Check rate limit for a key
Sends a throttle request to the actor and waits for the response. This method is cancel-safe and can be used in select! expressions.
§Errors
Returns an error if:
- The actor has shut down
- The response channel was dropped
Trait Implementations§
Source§impl Clone for RateLimiterHandle
impl Clone for RateLimiterHandle
Source§fn clone(&self) -> RateLimiterHandle
fn clone(&self) -> RateLimiterHandle
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 moreAuto Trait Implementations§
impl Freeze for RateLimiterHandle
impl RefUnwindSafe for RateLimiterHandle
impl Send for RateLimiterHandle
impl Sync for RateLimiterHandle
impl Unpin for RateLimiterHandle
impl UnwindSafe for RateLimiterHandle
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