event.rs

 1use minidom::Element;
 2
 3#[derive(Debug)]
 4pub enum Event {
 5    Online,
 6    Disconnected,
 7    Stanza(Element),
 8}
 9
10impl Event {
11    pub fn is_online(&self) -> bool {
12        match *self {
13            Event::Online => true,
14            _ => false,
15        }
16    }
17
18    pub fn is_stanza(&self, name: &str) -> bool {
19        match *self {
20            Event::Stanza(ref stanza) => stanza.name() == name,
21            _ => false,
22        }
23    }
24
25    pub fn as_stanza(&self) -> Option<&Element> {
26        match *self {
27            Event::Stanza(ref stanza) => Some(stanza),
28            _ => None,
29        }
30    }
31
32    pub fn into_stanza(self) -> Option<Element> {
33        match self {
34            Event::Stanza(stanza) => Some(stanza),
35            _ => None,
36        }
37    }
38}