lib.rs

 1extern crate minidom;
 2
 3pub mod error;
 4pub mod ns;
 5
 6pub mod body;
 7pub mod disco;
 8pub mod data_forms;
 9pub mod media_element;
10pub mod ecaps2;
11pub mod jingle;
12pub mod ping;
13pub mod chatstates;
14pub mod ibb;
15
16use std::fmt::Debug;
17use minidom::Element;
18
19pub trait MessagePayload: Debug {}
20
21pub fn parse_message_payload(elem: &Element) -> Option<Box<MessagePayload>> {
22    if let Ok(body) = body::parse_body(elem) {
23        Some(Box::new(body))
24    } else if let Ok(chatstate) = chatstates::parse_chatstate(elem) {
25        Some(Box::new(chatstate))
26    } else {
27        None
28    }
29}