presence: Add ecaps2 as a possible payload.

This commit is contained in:
Emmanuel Gil Peyrot 2017-04-23 18:38:53 +01:00
parent 429abb996d
commit 2c95fd6786

View file

@ -10,11 +10,13 @@ use error::Error;
use ns; use ns;
use delay; use delay;
use ecaps2;
/// Lists every known payload of a `<presence/>`. /// Lists every known payload of a `<presence/>`.
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub enum PresencePayload { pub enum PresencePayload {
Delay(delay::Delay), Delay(delay::Delay),
ECaps2(ecaps2::ECaps2),
} }
#[derive(Debug, Clone, PartialEq)] #[derive(Debug, Clone, PartialEq)]
@ -104,6 +106,8 @@ pub fn parse_presence(root: &Element) -> Result<Presence, Error> {
for elem in root.children() { for elem in root.children() {
let payload = if let Ok(delay) = delay::parse_delay(elem) { let payload = if let Ok(delay) = delay::parse_delay(elem) {
Some(PresencePayload::Delay(delay)) Some(PresencePayload::Delay(delay))
} else if let Ok(ecaps2) = ecaps2::parse_ecaps2(elem) {
Some(PresencePayload::ECaps2(ecaps2))
} else { } else {
None None
}; };
@ -124,6 +128,7 @@ pub fn parse_presence(root: &Element) -> Result<Presence, Error> {
pub fn serialise_payload(payload: &PresencePayload) -> Element { pub fn serialise_payload(payload: &PresencePayload) -> Element {
match *payload { match *payload {
PresencePayload::Delay(ref delay) => delay::serialise(delay), PresencePayload::Delay(ref delay) => delay::serialise(delay),
PresencePayload::ECaps2(ref ecaps2) => ecaps2::serialise(ecaps2),
} }
} }