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]