diff --git a/src/ibb.rs b/src/ibb.rs index 2edb8ee5..50d47902 100644 --- a/src/ibb.rs +++ b/src/ibb.rs @@ -7,6 +7,8 @@ use helpers::Base64; use iq::IqSetPayload; +generate_id!(StreamId); + generate_attribute!(Stanza, "stanza", { Iq => "iq", Message => "message", @@ -15,7 +17,7 @@ generate_attribute!(Stanza, "stanza", { generate_element!(Open, "open", IBB, attributes: [ block_size: u16 = "block-size" => required, - sid: String = "sid" => required, + sid: StreamId = "sid" => required, stanza: Stanza = "stanza" => default, ]); @@ -24,7 +26,7 @@ impl IqSetPayload for Open {} generate_element_with_text!(Data, "data", IBB, [ seq: u16 = "seq" => required, - sid: String = "sid" => required + sid: StreamId = "sid" => required ], data: Base64> ); @@ -33,7 +35,7 @@ impl IqSetPayload for Data {} generate_element!(Close, "close", IBB, attributes: [ - sid: String = "sid" => required, + sid: StreamId = "sid" => required, ]); impl IqSetPayload for Close {} @@ -48,21 +50,23 @@ mod tests { #[test] fn test_simple() { + let sid = StreamId(String::from("coucou")); + let elem: Element = "".parse().unwrap(); let open = Open::try_from(elem).unwrap(); assert_eq!(open.block_size, 3); - assert_eq!(open.sid, "coucou"); + assert_eq!(open.sid, sid); assert_eq!(open.stanza, Stanza::Iq); let elem: Element = "AAAA".parse().unwrap(); let data = Data::try_from(elem).unwrap(); assert_eq!(data.seq, 0); - assert_eq!(data.sid, "coucou"); + assert_eq!(data.sid, sid); assert_eq!(data.data, vec!(0, 0, 0)); let elem: Element = "".parse().unwrap(); let close = Close::try_from(elem).unwrap(); - assert_eq!(close.sid, "coucou"); + assert_eq!(close.sid, sid); } #[test] diff --git a/src/jingle_ibb.rs b/src/jingle_ibb.rs index 156ba4d3..dc4702f6 100644 --- a/src/jingle_ibb.rs +++ b/src/jingle_ibb.rs @@ -4,9 +4,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. -use ibb::Stanza; - -generate_id!(StreamId); +use ibb::{Stanza, StreamId}; generate_element!(Transport, "transport", JINGLE_IBB, attributes: [