mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 21:42:34 +00:00
resourcetype: Use tuple struct
This commit is contained in:
@@ -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",
|
||||
},
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ impl Resource for CalendarObjectResource {
|
||||
type PrincipalResource = PrincipalResource;
|
||||
|
||||
fn get_resourcetype(&self) -> Resourcetype {
|
||||
Resourcetype { inner: &[] }
|
||||
Resourcetype(&[])
|
||||
}
|
||||
|
||||
fn get_prop(
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -56,7 +56,7 @@ impl Resource for AddressObjectResource {
|
||||
type PrincipalResource = PrincipalResource;
|
||||
|
||||
fn get_resourcetype(&self) -> Resourcetype {
|
||||
Resourcetype { inner: &[] }
|
||||
Resourcetype(&[])
|
||||
}
|
||||
|
||||
fn get_prop(
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -39,12 +39,10 @@ impl<PR: Resource> Resource for RootResource<PR> {
|
||||
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(
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user