pub async fn run<'a, F, C>(
    conn: &Connection,
    client: &C,
    f: F
) -> DisconnectedError
where F: FnMut(C::Event), C: Client,