Skip to main content

AuthHandler

Trait AuthHandler 

Source
pub trait AuthHandler<Auth, Args>:
    Clone
    + Send
    + Sync
    + 'static {
    // Required method
    fn call(
        self,
        parts: Parts,
        body: Bytes,
    ) -> Pin<Box<dyn Future<Output = Response<BoxBody>> + Send>>;
}
Expand description

A handler that takes Auth as its first argument.

This is separate from Handler<Args> to ensure that Protected endpoints can only be bound with handlers that accept the auth type. The trait is implemented for async functions where the first argument is Auth: FromRequestParts.

Required Methods§

Source

fn call( self, parts: Parts, body: Bytes, ) -> Pin<Box<dyn Future<Output = Response<BoxBody>> + Send>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<F, Fut, Res, Auth> AuthHandler<Auth, ()> for F
where F: FnOnce(Auth) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static,

Source§

impl<F, Fut, Res, Auth, B> AuthHandler<Auth, AuthWithBody<(), B>> for F
where F: FnOnce(Auth, B) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, B: FromRequest + 'static,

Source§

impl<F, Fut, Res, Auth, T1> AuthHandler<Auth, (T1,)> for F
where F: FnOnce(Auth, T1) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, T1: FromRequestParts + 'static,

Source§

impl<F, Fut, Res, Auth, T1, B> AuthHandler<Auth, AuthWithBody<(T1,), B>> for F
where F: FnOnce(Auth, T1, B) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, T1: FromRequestParts + 'static, B: FromRequest + 'static,

Source§

impl<F, Fut, Res, Auth, T1, T2> AuthHandler<Auth, (T1, T2)> for F
where F: FnOnce(Auth, T1, T2) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, T1: FromRequestParts + 'static, T2: FromRequestParts + 'static,

Source§

impl<F, Fut, Res, Auth, T1, T2, B> AuthHandler<Auth, AuthWithBody<(T1, T2), B>> for F
where F: FnOnce(Auth, T1, T2, B) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, T1: FromRequestParts + 'static, T2: FromRequestParts + 'static, B: FromRequest + 'static,

Source§

impl<F, Fut, Res, Auth, T1, T2, T3> AuthHandler<Auth, (T1, T2, T3)> for F
where F: FnOnce(Auth, T1, T2, T3) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, T1: FromRequestParts + 'static, T2: FromRequestParts + 'static, T3: FromRequestParts + 'static,

Source§

impl<F, Fut, Res, Auth, T1, T2, T3, B> AuthHandler<Auth, AuthWithBody<(T1, T2, T3), B>> for F
where F: FnOnce(Auth, T1, T2, T3, B) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, T1: FromRequestParts + 'static, T2: FromRequestParts + 'static, T3: FromRequestParts + 'static, B: FromRequest + 'static,

Source§

impl<F, Fut, Res, Auth, T1, T2, T3, T4> AuthHandler<Auth, (T1, T2, T3, T4)> for F
where F: FnOnce(Auth, T1, T2, T3, T4) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, T1: FromRequestParts + 'static, T2: FromRequestParts + 'static, T3: FromRequestParts + 'static, T4: FromRequestParts + 'static,

Source§

impl<F, Fut, Res, Auth, T1, T2, T3, T4, B> AuthHandler<Auth, AuthWithBody<(T1, T2, T3, T4), B>> for F
where F: FnOnce(Auth, T1, T2, T3, T4, B) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, T1: FromRequestParts + 'static, T2: FromRequestParts + 'static, T3: FromRequestParts + 'static, T4: FromRequestParts + 'static, B: FromRequest + 'static,

Source§

impl<F, Fut, Res, Auth, T1, T2, T3, T4, T5> AuthHandler<Auth, (T1, T2, T3, T4, T5)> for F
where F: FnOnce(Auth, T1, T2, T3, T4, T5) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, T1: FromRequestParts + 'static, T2: FromRequestParts + 'static, T3: FromRequestParts + 'static, T4: FromRequestParts + 'static, T5: FromRequestParts + 'static,

Source§

impl<F, Fut, Res, Auth, T1, T2, T3, T4, T5, B> AuthHandler<Auth, AuthWithBody<(T1, T2, T3, T4, T5), B>> for F
where F: FnOnce(Auth, T1, T2, T3, T4, T5, B) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, T1: FromRequestParts + 'static, T2: FromRequestParts + 'static, T3: FromRequestParts + 'static, T4: FromRequestParts + 'static, T5: FromRequestParts + 'static, B: FromRequest + 'static,

Source§

impl<F, Fut, Res, Auth, T1, T2, T3, T4, T5, T6> AuthHandler<Auth, (T1, T2, T3, T4, T5, T6)> for F
where F: FnOnce(Auth, T1, T2, T3, T4, T5, T6) -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send, Res: IntoResponse, Auth: FromRequestParts + 'static, T1: FromRequestParts + 'static, T2: FromRequestParts + 'static, T3: FromRequestParts + 'static, T4: FromRequestParts + 'static, T5: FromRequestParts + 'static, T6: FromRequestParts + 'static,