pub trait WebSocketHandler<B, In>: Sized {
fn call<'async_trait>(
self,
stream: WebSocket,
input: In
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where
Self: 'async_trait;
}
This is supported on crate feature ws
only.
Expand description
Trait for async functions that can be used to handle websocket requests.
You shouldn’t need to depend on this trait directly. It is automatically
implemented to closures of the right types.
See the module docs for more details.
Call the handler with the given websocket stream and input parsed by
extractors.
impl<F, Fut, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> WebSocketHandler<B, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> for F where
B: Send,
T1: FromRequest<B> + Send + 'static,
T2: FromRequest<B> + Send + 'static,
T3: FromRequest<B> + Send + 'static,
T4: FromRequest<B> + Send + 'static,
T5: FromRequest<B> + Send + 'static,
T6: FromRequest<B> + Send + 'static,
T7: FromRequest<B> + Send + 'static,
T8: FromRequest<B> + Send + 'static,
T9: FromRequest<B> + Send + 'static,
T10: FromRequest<B> + Send + 'static,
T11: FromRequest<B> + Send + 'static,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,
impl<F, Fut, B, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> WebSocketHandler<B, (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> for F where
B: Send,
T2: FromRequest<B> + Send + 'static,
T3: FromRequest<B> + Send + 'static,
T4: FromRequest<B> + Send + 'static,
T5: FromRequest<B> + Send + 'static,
T6: FromRequest<B> + Send + 'static,
T7: FromRequest<B> + Send + 'static,
T8: FromRequest<B> + Send + 'static,
T9: FromRequest<B> + Send + 'static,
T10: FromRequest<B> + Send + 'static,
T11: FromRequest<B> + Send + 'static,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,
impl<F, Fut, B, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> WebSocketHandler<B, (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> for F where
B: Send,
T3: FromRequest<B> + Send + 'static,
T4: FromRequest<B> + Send + 'static,
T5: FromRequest<B> + Send + 'static,
T6: FromRequest<B> + Send + 'static,
T7: FromRequest<B> + Send + 'static,
T8: FromRequest<B> + Send + 'static,
T9: FromRequest<B> + Send + 'static,
T10: FromRequest<B> + Send + 'static,
T11: FromRequest<B> + Send + 'static,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,
impl<F, Fut, B, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> WebSocketHandler<B, (T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> for F where
B: Send,
T4: FromRequest<B> + Send + 'static,
T5: FromRequest<B> + Send + 'static,
T6: FromRequest<B> + Send + 'static,
T7: FromRequest<B> + Send + 'static,
T8: FromRequest<B> + Send + 'static,
T9: FromRequest<B> + Send + 'static,
T10: FromRequest<B> + Send + 'static,
T11: FromRequest<B> + Send + 'static,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,
impl<F, Fut, B, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> WebSocketHandler<B, (T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> for F where
B: Send,
T5: FromRequest<B> + Send + 'static,
T6: FromRequest<B> + Send + 'static,
T7: FromRequest<B> + Send + 'static,
T8: FromRequest<B> + Send + 'static,
T9: FromRequest<B> + Send + 'static,
T10: FromRequest<B> + Send + 'static,
T11: FromRequest<B> + Send + 'static,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,
impl<F, Fut, B, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> WebSocketHandler<B, (T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> for F where
B: Send,
T6: FromRequest<B> + Send + 'static,
T7: FromRequest<B> + Send + 'static,
T8: FromRequest<B> + Send + 'static,
T9: FromRequest<B> + Send + 'static,
T10: FromRequest<B> + Send + 'static,
T11: FromRequest<B> + Send + 'static,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,
impl<F, Fut, B, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> WebSocketHandler<B, (T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> for F where
B: Send,
T7: FromRequest<B> + Send + 'static,
T8: FromRequest<B> + Send + 'static,
T9: FromRequest<B> + Send + 'static,
T10: FromRequest<B> + Send + 'static,
T11: FromRequest<B> + Send + 'static,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,
impl<F, Fut, B, T8, T9, T10, T11, T12, T13, T14, T15, T16> WebSocketHandler<B, (T8, T9, T10, T11, T12, T13, T14, T15, T16)> for F where
B: Send,
T8: FromRequest<B> + Send + 'static,
T9: FromRequest<B> + Send + 'static,
T10: FromRequest<B> + Send + 'static,
T11: FromRequest<B> + Send + 'static,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,
impl<F, Fut, B, T9, T10, T11, T12, T13, T14, T15, T16> WebSocketHandler<B, (T9, T10, T11, T12, T13, T14, T15, T16)> for F where
B: Send,
T9: FromRequest<B> + Send + 'static,
T10: FromRequest<B> + Send + 'static,
T11: FromRequest<B> + Send + 'static,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,
impl<F, Fut, B, T10, T11, T12, T13, T14, T15, T16> WebSocketHandler<B, (T10, T11, T12, T13, T14, T15, T16)> for F where
B: Send,
T10: FromRequest<B> + Send + 'static,
T11: FromRequest<B> + Send + 'static,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T10, T11, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,
impl<F, Fut, B, T11, T12, T13, T14, T15, T16> WebSocketHandler<B, (T11, T12, T13, T14, T15, T16)> for F where
B: Send,
T11: FromRequest<B> + Send + 'static,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T11, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,
impl<F, Fut, B, T12, T13, T14, T15, T16> WebSocketHandler<B, (T12, T13, T14, T15, T16)> for F where
B: Send,
T12: FromRequest<B> + Send + 'static,
T13: FromRequest<B> + Send + 'static,
T14: FromRequest<B> + Send + 'static,
T15: FromRequest<B> + Send + 'static,
T16: FromRequest<B> + Send + 'static,
F: FnOnce(WebSocket, T12, T13, T14, T15, T16) -> Fut + Send,
Fut: Future<Output = ()> + Send,