diff --git a/xmpp/examples/hello_bot.rs b/xmpp/examples/hello_bot.rs index 0a6a93b..cd96d24 100644 --- a/xmpp/examples/hello_bot.rs +++ b/xmpp/examples/hello_bot.rs @@ -39,8 +39,8 @@ async fn main() -> Result<(), Option<()>> { Event::Online => { println!("Online."); } - Event::Disconnected => { - println!("Disconnected"); + Event::Disconnected(e) => { + println!("Disconnected because of {}.", e); return Err(None); } Event::ContactAdded(contact) => { diff --git a/xmpp/src/lib.rs b/xmpp/src/lib.rs index 75cf9f7..8adc2a5 100644 --- a/xmpp/src/lib.rs +++ b/xmpp/src/lib.rs @@ -77,7 +77,7 @@ pub type RoomNick = String; #[derive(Debug)] pub enum Event { Online, - Disconnected, + Disconnected(Error), ContactAdded(RosterItem), ContactRemoved(RosterItem), ContactChanged(RosterItem), @@ -539,8 +539,8 @@ impl Agent { let _ = self.client.send_stanza(iq).await; } TokioXmppEvent::Online { resumed: true, .. } => {} - TokioXmppEvent::Disconnected(_) => { - events.push(Event::Disconnected); + TokioXmppEvent::Disconnected(e) => { + events.push(Event::Disconnected(e)); } TokioXmppEvent::Stanza(elem) => { if elem.is("iq", "jabber:client") { @@ -659,7 +659,7 @@ mod tests { while let Some(events) = agent.wait_for_events().await { assert!(match events[0] { - Event::Disconnected => true, + Event::Disconnected(_) => true, _ => false, }); assert_eq!(events.len(), 1);