From 2eb6b1934d638c5a0fa03a02f6e9e5322255b68c Mon Sep 17 00:00:00 2001 From: Lennart <18233294+lennart-k@users.noreply.github.com> Date: Sun, 5 Jan 2025 16:44:31 +0100 Subject: [PATCH] resourcetype: Use tuple struct --- crates/caldav/src/calendar/resource.rs | 44 +++++++++---------- crates/caldav/src/calendar_object/resource.rs | 2 +- crates/caldav/src/principal/mod.rs | 22 +++++----- crates/carddav/src/address_object/resource.rs | 2 +- crates/carddav/src/addressbook/resource.rs | 22 +++++----- crates/carddav/src/principal/mod.rs | 22 +++++----- crates/dav/src/resources/root.rs | 10 ++--- crates/dav/src/xml/resourcetype.rs | 27 +++++------- 8 files changed, 67 insertions(+), 84 deletions(-) diff --git a/crates/caldav/src/calendar/resource.rs b/crates/caldav/src/calendar/resource.rs index e02c189..cc0f014 100644 --- a/crates/caldav/src/calendar/resource.rs +++ b/crates/caldav/src/calendar/resource.rs @@ -99,31 +99,27 @@ impl Resource for CalendarResource { fn get_resourcetype(&self) -> Resourcetype { if self.0.subscription_url.is_none() { - Resourcetype { - inner: &[ - ResourcetypeInner { - ns: rustical_dav::namespace::NS_DAV, - name: "collection", - }, - ResourcetypeInner { - ns: rustical_dav::namespace::NS_CALDAV, - name: "calendar", - }, - ], - } + Resourcetype(&[ + ResourcetypeInner { + ns: rustical_dav::namespace::NS_DAV, + name: "collection", + }, + ResourcetypeInner { + ns: rustical_dav::namespace::NS_CALDAV, + name: "calendar", + }, + ]) } else { - Resourcetype { - inner: &[ - ResourcetypeInner { - ns: rustical_dav::namespace::NS_DAV, - name: "collection", - }, - ResourcetypeInner { - ns: rustical_dav::namespace::NS_CALENDARSERVER, - name: "subscribed", - }, - ], - } + Resourcetype(&[ + ResourcetypeInner { + ns: rustical_dav::namespace::NS_DAV, + name: "collection", + }, + ResourcetypeInner { + ns: rustical_dav::namespace::NS_CALENDARSERVER, + name: "subscribed", + }, + ]) } } diff --git a/crates/caldav/src/calendar_object/resource.rs b/crates/caldav/src/calendar_object/resource.rs index 5ef685e..8f273ca 100644 --- a/crates/caldav/src/calendar_object/resource.rs +++ b/crates/caldav/src/calendar_object/resource.rs @@ -55,7 +55,7 @@ impl Resource for CalendarObjectResource { type PrincipalResource = PrincipalResource; fn get_resourcetype(&self) -> Resourcetype { - Resourcetype { inner: &[] } + Resourcetype(&[]) } fn get_prop( diff --git a/crates/caldav/src/principal/mod.rs b/crates/caldav/src/principal/mod.rs index dfb217b..62384d0 100644 --- a/crates/caldav/src/principal/mod.rs +++ b/crates/caldav/src/principal/mod.rs @@ -58,18 +58,16 @@ impl Resource for PrincipalResource { type PrincipalResource = PrincipalResource; fn get_resourcetype(&self) -> Resourcetype { - Resourcetype { - inner: &[ - ResourcetypeInner { - ns: rustical_dav::namespace::NS_DAV, - name: "collection", - }, - ResourcetypeInner { - ns: rustical_dav::namespace::NS_DAV, - name: "principal", - }, - ], - } + Resourcetype(&[ + ResourcetypeInner { + ns: rustical_dav::namespace::NS_DAV, + name: "collection", + }, + ResourcetypeInner { + ns: rustical_dav::namespace::NS_DAV, + name: "principal", + }, + ]) } fn get_prop( diff --git a/crates/carddav/src/address_object/resource.rs b/crates/carddav/src/address_object/resource.rs index 29b03d5..f23b4d8 100644 --- a/crates/carddav/src/address_object/resource.rs +++ b/crates/carddav/src/address_object/resource.rs @@ -56,7 +56,7 @@ impl Resource for AddressObjectResource { type PrincipalResource = PrincipalResource; fn get_resourcetype(&self) -> Resourcetype { - Resourcetype { inner: &[] } + Resourcetype(&[]) } fn get_prop( diff --git a/crates/carddav/src/addressbook/resource.rs b/crates/carddav/src/addressbook/resource.rs index 9663471..b524103 100644 --- a/crates/carddav/src/addressbook/resource.rs +++ b/crates/carddav/src/addressbook/resource.rs @@ -71,18 +71,16 @@ impl Resource for AddressbookResource { type PrincipalResource = PrincipalResource; fn get_resourcetype(&self) -> Resourcetype { - Resourcetype { - inner: &[ - ResourcetypeInner { - ns: rustical_dav::namespace::NS_DAV, - name: "collection", - }, - ResourcetypeInner { - ns: rustical_dav::namespace::NS_CARDDAV, - name: "addressbook", - }, - ], - } + Resourcetype(&[ + ResourcetypeInner { + ns: rustical_dav::namespace::NS_DAV, + name: "collection", + }, + ResourcetypeInner { + ns: rustical_dav::namespace::NS_CARDDAV, + name: "addressbook", + }, + ]) } fn get_prop( diff --git a/crates/carddav/src/principal/mod.rs b/crates/carddav/src/principal/mod.rs index 4f7904b..5989188 100644 --- a/crates/carddav/src/principal/mod.rs +++ b/crates/carddav/src/principal/mod.rs @@ -59,18 +59,16 @@ impl Resource for PrincipalResource { type PrincipalResource = PrincipalResource; fn get_resourcetype(&self) -> Resourcetype { - Resourcetype { - inner: &[ - ResourcetypeInner { - ns: rustical_dav::namespace::NS_DAV, - name: "collection", - }, - ResourcetypeInner { - ns: rustical_dav::namespace::NS_DAV, - name: "principal", - }, - ], - } + Resourcetype(&[ + ResourcetypeInner { + ns: rustical_dav::namespace::NS_DAV, + name: "collection", + }, + ResourcetypeInner { + ns: rustical_dav::namespace::NS_DAV, + name: "principal", + }, + ]) } fn get_prop( diff --git a/crates/dav/src/resources/root.rs b/crates/dav/src/resources/root.rs index ea3a69f..a8bd4dd 100644 --- a/crates/dav/src/resources/root.rs +++ b/crates/dav/src/resources/root.rs @@ -39,12 +39,10 @@ impl Resource for RootResource { type PrincipalResource = PR; fn get_resourcetype(&self) -> Resourcetype { - Resourcetype { - inner: &[ResourcetypeInner { - ns: crate::namespace::NS_DAV, - name: "collection", - }], - } + Resourcetype(&[ResourcetypeInner { + ns: crate::namespace::NS_DAV, + name: "collection", + }]) } fn get_prop( diff --git a/crates/dav/src/xml/resourcetype.rs b/crates/dav/src/xml/resourcetype.rs index 08e16bd..2070787 100644 --- a/crates/dav/src/xml/resourcetype.rs +++ b/crates/dav/src/xml/resourcetype.rs @@ -1,10 +1,7 @@ use rustical_xml::XmlSerialize; #[derive(Debug, Clone, PartialEq, XmlSerialize)] -pub struct Resourcetype { - #[xml(flatten, ty = "untagged")] - pub inner: &'static [ResourcetypeInner], -} +pub struct Resourcetype(#[xml(flatten, ty = "untagged")] pub &'static [ResourcetypeInner]); #[derive(Debug, Clone, PartialEq, XmlSerialize)] pub struct ResourcetypeInner { @@ -31,18 +28,16 @@ mod tests { let mut buf = Vec::new(); let mut writer = quick_xml::Writer::new(&mut buf); Document { - resourcetype: Resourcetype { - inner: &[ - ResourcetypeInner { - ns: crate::namespace::NS_DAV, - name: "displayname", - }, - ResourcetypeInner { - ns: crate::namespace::NS_CALENDARSERVER, - name: "calendar-color", - }, - ], - }, + resourcetype: Resourcetype(&[ + ResourcetypeInner { + ns: crate::namespace::NS_DAV, + name: "displayname", + }, + ResourcetypeInner { + ns: crate::namespace::NS_CALENDARSERVER, + name: "calendar-color", + }, + ]), } .serialize_root(&mut writer) .unwrap();