[−][src]Struct limitation_actix_middleware::RateLimiter
Middleware
for rate limiting requests using a fixed window counter keyed on a HeaaderName
.
Example
A basic example:
use actix_web::{http::header::HeaderName, web, App, HttpResponse}; use limitation_actix_middleware::{Limiter, RateLimiter}; let header = web::Data::new(HeaderName::from_static("authorization")); let limiter = web::Data::new(Limiter::build("redis://127.0.0.1/").finish()?); let app = App::new() .register_data(header.clone()) .register_data(limiter.clone()) .wrap(RateLimiter) .service( web::resource("/test") .route(web::get().to(|| HttpResponse::Ok())) .route(web::head().to(|| HttpResponse::MethodNotAllowed())) );
Trait Implementations
impl<S, B> Transform<S> for RateLimiter where
S: Service<Request = ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
B: 'static,
[src]
S: Service<Request = ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
S::Future: 'static,
B: 'static,
type Request = ServiceRequest
Requests handled by the service.
type Response = ServiceResponse<B>
Responses given by the service.
type Error = Error
Errors produced by the service.
type InitError = ()
Errors produced while building a service.
type Transform = RateLimiterMiddleware<S>
The TransformService
value created by this factory
type Future = FutureResult<Self::Transform, Self::InitError>
The future response value.
fn new_transform(&self, service: S) -> Self::Future
[src]
fn map_init_err<F, E>(self, f: F) -> TransformMapInitErr<Self, S, F, E> where
F: Fn(Self::InitError) -> E,
F: Fn(Self::InitError) -> E,
fn from_err<E>(self) -> TransformFromErr<Self, S, E> where
E: From<Self::InitError>,
E: From<Self::InitError>,
Auto Trait Implementations
impl Send for RateLimiter
impl Sync for RateLimiter
impl Unpin for RateLimiter
impl UnwindSafe for RateLimiter
impl RefUnwindSafe for RateLimiter
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T, S> IntoTransform<T, S> for T where
T: Transform<S>,
T: Transform<S>,
fn into_transform(self) -> T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,