pub fn lazy_auto_reconnect<F, C>(connect: F) -> (C, Box<dyn SetTarget<C>>)where
    F: FnMut() -> Result<C> + 'static,
    C: FromClientHook + 'static,