Skip to main content

DisconnectHandler

Trait DisconnectHandler 

Source
pub trait DisconnectHandler<A: Adapter, T>:
    Send
    + Sync
    + 'static {
    // Required method
    fn call_with_defer(
        &self,
        s: Arc<Socket<A>>,
        reason: DisconnectReason,
        defer: fn(Arc<Socket<A>>),
    );

    // Provided method
    fn call(&self, s: Arc<Socket<A>>, reason: DisconnectReason) { ... }
}
Expand description

Define a handler for the disconnect event. It is implemented for closures with up to 16 arguments. They must implement the FromDisconnectParts trait.

  • See the disconnect module doc for more details on disconnect handler.
  • See the extract module doc for more details on available extractors.

Required Methods§

Source

fn call_with_defer( &self, s: Arc<Socket<A>>, reason: DisconnectReason, defer: fn(Arc<Socket<A>>), )

Call the handler and issue a deferred function that will be executed after the disconnect handler

Provided Methods§

Source

fn call(&self, s: Arc<Socket<A>>, reason: DisconnectReason)

Call the handler with the given arguments.

Implementors§

Source§

impl<A, F, Fut> DisconnectHandler<A, ()> for F
where F: FnOnce() -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter,

Source§

impl<A, F, Fut, T1> DisconnectHandler<A, (T1,)> for F
where F: FnOnce(T1) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2> DisconnectHandler<A, (T1, T2)> for F
where F: FnOnce(T1, T2) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3> DisconnectHandler<A, (T1, T2, T3)> for F
where F: FnOnce(T1, T2, T3) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4> DisconnectHandler<A, (T1, T2, T3, T4)> for F
where F: FnOnce(T1, T2, T3, T4) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5> DisconnectHandler<A, (T1, T2, T3, T4, T5)> for F
where F: FnOnce(T1, T2, T3, T4, T5) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5, T6> DisconnectHandler<A, (T1, T2, T3, T4, T5, T6)> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send, T6: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5, T6, T7> DisconnectHandler<A, (T1, T2, T3, T4, T5, T6, T7)> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send, T6: FromDisconnectParts<A> + Send, T7: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5, T6, T7, T8> DisconnectHandler<A, (T1, T2, T3, T4, T5, T6, T7, T8)> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send, T6: FromDisconnectParts<A> + Send, T7: FromDisconnectParts<A> + Send, T8: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9> DisconnectHandler<A, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send, T6: FromDisconnectParts<A> + Send, T7: FromDisconnectParts<A> + Send, T8: FromDisconnectParts<A> + Send, T9: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> DisconnectHandler<A, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send, T6: FromDisconnectParts<A> + Send, T7: FromDisconnectParts<A> + Send, T8: FromDisconnectParts<A> + Send, T9: FromDisconnectParts<A> + Send, T10: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> DisconnectHandler<A, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send, T6: FromDisconnectParts<A> + Send, T7: FromDisconnectParts<A> + Send, T8: FromDisconnectParts<A> + Send, T9: FromDisconnectParts<A> + Send, T10: FromDisconnectParts<A> + Send, T11: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> DisconnectHandler<A, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send, T6: FromDisconnectParts<A> + Send, T7: FromDisconnectParts<A> + Send, T8: FromDisconnectParts<A> + Send, T9: FromDisconnectParts<A> + Send, T10: FromDisconnectParts<A> + Send, T11: FromDisconnectParts<A> + Send, T12: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> DisconnectHandler<A, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send, T6: FromDisconnectParts<A> + Send, T7: FromDisconnectParts<A> + Send, T8: FromDisconnectParts<A> + Send, T9: FromDisconnectParts<A> + Send, T10: FromDisconnectParts<A> + Send, T11: FromDisconnectParts<A> + Send, T12: FromDisconnectParts<A> + Send, T13: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> DisconnectHandler<A, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send, T6: FromDisconnectParts<A> + Send, T7: FromDisconnectParts<A> + Send, T8: FromDisconnectParts<A> + Send, T9: FromDisconnectParts<A> + Send, T10: FromDisconnectParts<A> + Send, T11: FromDisconnectParts<A> + Send, T12: FromDisconnectParts<A> + Send, T13: FromDisconnectParts<A> + Send, T14: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> DisconnectHandler<A, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send, T6: FromDisconnectParts<A> + Send, T7: FromDisconnectParts<A> + Send, T8: FromDisconnectParts<A> + Send, T9: FromDisconnectParts<A> + Send, T10: FromDisconnectParts<A> + Send, T11: FromDisconnectParts<A> + Send, T12: FromDisconnectParts<A> + Send, T13: FromDisconnectParts<A> + Send, T14: FromDisconnectParts<A> + Send, T15: FromDisconnectParts<A> + Send,

Source§

impl<A, F, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> DisconnectHandler<A, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Send + Sync + Clone + 'static, Fut: Future<Output = ()> + Send + 'static, A: Adapter, T1: FromDisconnectParts<A> + Send, T2: FromDisconnectParts<A> + Send, T3: FromDisconnectParts<A> + Send, T4: FromDisconnectParts<A> + Send, T5: FromDisconnectParts<A> + Send, T6: FromDisconnectParts<A> + Send, T7: FromDisconnectParts<A> + Send, T8: FromDisconnectParts<A> + Send, T9: FromDisconnectParts<A> + Send, T10: FromDisconnectParts<A> + Send, T11: FromDisconnectParts<A> + Send, T12: FromDisconnectParts<A> + Send, T13: FromDisconnectParts<A> + Send, T14: FromDisconnectParts<A> + Send, T15: FromDisconnectParts<A> + Send, T16: FromDisconnectParts<A> + Send,