diff --git a/src/disco.rs b/src/disco.rs
index 88e105c..b976e36 100644
--- a/src/disco.rs
+++ b/src/disco.rs
@@ -4,6 +4,8 @@
// 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/.
+#![deny(missing_docs)]
+
use try_from::TryFrom;
use minidom::Element;
@@ -14,8 +16,13 @@ use ns;
use data_forms::{DataForm, DataFormType};
+/// Structure representing a `` element.
+///
+/// It should only be used in an ``, as it can only represent
+/// the request, and not a result.
#[derive(Debug, Clone)]
pub struct DiscoInfoQuery {
+ /// Node on which we are doing the discovery.
pub node: Option,
}
@@ -49,8 +56,10 @@ impl From for Element {
}
}
+/// Structure representing a `` element.
#[derive(Debug, Clone, PartialEq)]
pub struct Feature {
+ /// Namespace of the feature we want to represent.
pub var: String,
}
@@ -84,11 +93,19 @@ impl From for Element {
}
}
+/// Structure representing an `` element.
#[derive(Debug, Clone)]
pub struct Identity {
+ /// Category of this identity.
pub category: String, // TODO: use an enum here.
+
+ /// Type of this identity.
pub type_: String, // TODO: use an enum here.
+
+ /// Lang of the name of this identity.
pub lang: Option,
+
+ /// Name of this identity.
pub name: Option,
}
@@ -131,11 +148,22 @@ impl From for Element {
}
}
+/// Structure representing a `` element.
+///
+/// It should only be used in an ``, as it can only
+/// represent the result, and not a request.
#[derive(Debug, Clone)]
pub struct DiscoInfoResult {
+ /// Node on which we have done this discovery.
pub node: Option,
+
+ /// List of identities exposed by this entity.
pub identities: Vec,
+
+ /// List of features supported by this entity.
pub features: Vec,
+
+ /// List of extensions reported by this entity.
pub extensions: Vec,
}
@@ -201,8 +229,13 @@ impl From for Element {
}
}
+/// Structure representing a `` element.
+///
+/// It should only be used in an ``, as it can only represent
+/// the request, and not a result.
#[derive(Debug, Clone)]
pub struct DiscoItemsQuery {
+ /// Node on which we are doing the discovery.
pub node: Option,
}
@@ -236,10 +269,14 @@ impl From for Element {
}
}
+/// Structure representing an ` ` element.
#[derive(Debug, Clone)]
pub struct Item {
+ /// JID of the entity pointed by this item.
pub jid: Jid,
+ /// Node of the entity pointed by this item.
pub node: Option,
+ /// Name of the entity pointed by this item.
pub name: Option,
}
@@ -277,9 +314,17 @@ impl From- for Element {
}
}
+/// Structure representing a `` element.
+///
+/// It should only be used in an ``, as it can only
+/// represent the result, and not a request.
#[derive(Debug, Clone)]
pub struct DiscoItemsResult {
+ /// Node on which we have done this discovery.
pub node: Option,
+
+ /// List of items pointed by this entity.
pub items: Vec
- ,
}