Lazily bubbling the XMPP event up to the Disconnected event.
This commit is contained in:
parent
8f18cf2208
commit
ba48f6de46
2 changed files with 6 additions and 6 deletions
|
@ -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) => {
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue