diff --git a/parsers/src/disco.rs b/parsers/src/disco.rs
index eb2191cf1af31eb19f75ec3a29818e491b1163d9..45455f9792b9a967dbadbc39f32fad8cd456d5ef 100644
--- a/parsers/src/disco.rs
+++ b/parsers/src/disco.rs
@@ -30,14 +30,14 @@ pub struct DiscoInfoQuery {
impl IqGetPayload for DiscoInfoQuery {}
-generate_element!(
-#[derive(Eq, Hash)]
/// Structure representing a `` element.
-Feature, "feature", DISCO_INFO,
-attributes: [
+#[derive(FromXml, IntoXml, Debug, Clone, PartialEq, Eq, Hash)]
+#[xml(namespace = ns::DISCO_INFO, name = "feature")]
+pub struct Feature {
/// Namespace of the feature we want to represent.
- var: Required = "var",
-]);
+ #[xml(attribute)]
+ pub var: String,
+}
impl Feature {
/// Create a new `` with the according `@var`.
@@ -381,7 +381,10 @@ mod tests {
FromElementError::Invalid(Error::Other(string)) => string,
_ => panic!(),
};
- assert_eq!(message, "Required attribute 'var' missing.");
+ assert_eq!(
+ message,
+ "Required attribute field 'var' on Feature element missing."
+ );
}
#[test]