diff --git a/src/stream.rs b/src/stream.rs index 019a873f..693796dc 100644 --- a/src/stream.rs +++ b/src/stream.rs @@ -4,20 +4,32 @@ // 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/. -#![allow(missing_docs)] - use jid::Jid; -generate_element!(Stream, "stream", STREAM, -attributes: [ - from: Option = "from" => optional, - to: Option = "to" => optional, - id: Option = "id" => optional, - version: Option = "version" => optional, - xml_lang: Option = "xml:lang" => optional, -]); +generate_element!( + /// The stream opening for client-server communications. + Stream, "stream", STREAM, + attributes: [ + /// The JID of the entity opening this stream. + from: Option = "from" => optional, + + /// The JID of the entity receiving this stream opening. + to: Option = "to" => optional, + + /// The id of the stream, used for authentication challenges. + id: Option = "id" => optional, + + /// The XMPP version used during this stream. + version: Option = "version" => optional, + + /// The default human language for all subsequent stanzas, which will + /// be transmitted to other entities for better localisation. + xml_lang: Option = "xml:lang" => optional, + ] +); impl Stream { + /// Creates a simple client→server `` element. pub fn new(to: Jid) -> Stream { Stream { from: None, @@ -28,21 +40,28 @@ impl Stream { } } + /// Sets the [@from](#structfield.from) attribute on this `` + /// element. pub fn with_from(mut self, from: Jid) -> Stream { self.from = Some(from); self } + /// Sets the [@id](#structfield.id) attribute on this `` + /// element. pub fn with_id(mut self, id: String) -> Stream { self.id = Some(id); self } + /// Sets the [@xml:lang](#structfield.xml_lang) attribute on this + /// `` element. pub fn with_lang(mut self, xml_lang: String) -> Stream { self.xml_lang = Some(xml_lang); self } + /// Checks whether the version matches the expected one. pub fn is_version(&self, version: &str) -> bool { match self.version { None => false,