mirror of
https://gitlab.com/xmpp-rs/xmpp-rs.git
synced 2024-07-12 22:21:53 +00:00
iq: Wire up the Jingle parser and serialiser.
This commit is contained in:
parent
4fb4727357
commit
5e4ba2701b
1 changed files with 5 additions and 0 deletions
|
@ -8,12 +8,14 @@ use error::Error;
|
|||
use ns;
|
||||
|
||||
use disco;
|
||||
use jingle;
|
||||
use ping;
|
||||
|
||||
/// Lists every known payload of a `<iq/>`.
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum IqPayload {
|
||||
Disco(disco::Disco),
|
||||
Jingle(jingle::Jingle),
|
||||
Ping(ping::Ping),
|
||||
}
|
||||
|
||||
|
@ -79,6 +81,8 @@ pub fn parse_iq(root: &Element) -> Result<Iq, Error> {
|
|||
} else {
|
||||
let parsed_payload = if let Ok(disco) = disco::parse_disco(elem) {
|
||||
Some(IqPayload::Disco(disco))
|
||||
} else if let Ok(jingle) = jingle::parse_jingle(elem) {
|
||||
Some(IqPayload::Jingle(jingle))
|
||||
} else if let Ok(ping) = ping::parse_ping(elem) {
|
||||
Some(IqPayload::Ping(ping))
|
||||
} else {
|
||||
|
@ -131,6 +135,7 @@ pub fn parse_iq(root: &Element) -> Result<Iq, Error> {
|
|||
pub fn serialise_payload(payload: &IqPayload) -> Element {
|
||||
match *payload {
|
||||
IqPayload::Disco(ref disco) => disco::serialise_disco(disco),
|
||||
IqPayload::Jingle(ref jingle) => jingle::serialise(jingle),
|
||||
IqPayload::Ping(_) => ping::serialise_ping(),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue