xmpp-parsers: Split vCard-temp iq get into new VCardQuery

Emmanuel Gil Peyrot created

There is no reason to force users to use the same struct for both.

Change summary

parsers/ChangeLog    |  1 +
parsers/src/vcard.rs | 10 +++++++++-
2 files changed, 10 insertions(+), 1 deletion(-)

Detailed changes

parsers/ChangeLog 🔗

@@ -46,6 +46,7 @@ XXXX-YY-ZZ RELEASER <admin@example.com>
         cert_management::Item::no_cert_management,
         ssm::StreamManagement::optional and starttls::StartTls::required are
         now proper bools, instead of Option<ZeroSizedType> (!518)
+      - vCard-temp queries have been split into vcard::VCardQuery (!522)
     * New parsers/serialisers:
       - Stream Features (RFC 6120) (!400)
       - Spam Reporting (XEP-0377) (!506)

parsers/src/vcard.rs 🔗

@@ -66,10 +66,16 @@ pub struct VCard {
     pub payloads: Vec<Element>,
 }
 
-impl IqGetPayload for VCard {}
 impl IqSetPayload for VCard {}
 impl IqResultPayload for VCard {}
 
+/// A `<vCard/>` request element, for use in iq get.
+#[derive(FromXml, AsXml, PartialEq, Debug, Clone)]
+#[xml(namespace = ns::VCARD, name = "vCard")]
+pub struct VCardQuery;
+
+impl IqGetPayload for VCardQuery {}
+
 #[cfg(test)]
 mod tests {
     use super::*;
@@ -82,6 +88,7 @@ mod tests {
         assert_size!(Type, 12);
         assert_size!(Binval, 12);
         assert_size!(VCard, 36);
+        assert_size!(VCardQuery, 0);
     }
 
     #[cfg(target_pointer_width = "64")]
@@ -91,6 +98,7 @@ mod tests {
         assert_size!(Type, 24);
         assert_size!(Binval, 24);
         assert_size!(VCard, 72);
+        assert_size!(VCardQuery, 0);
     }
 
     #[test]