mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-14 01:12:24 +00:00
resourcetype: Use tuple struct
This commit is contained in:
@@ -99,31 +99,27 @@ impl Resource for CalendarResource {
|
|||||||
|
|
||||||
fn get_resourcetype(&self) -> Resourcetype {
|
fn get_resourcetype(&self) -> Resourcetype {
|
||||||
if self.0.subscription_url.is_none() {
|
if self.0.subscription_url.is_none() {
|
||||||
Resourcetype {
|
Resourcetype(&[
|
||||||
inner: &[
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: rustical_dav::namespace::NS_DAV,
|
||||||
ns: rustical_dav::namespace::NS_DAV,
|
name: "collection",
|
||||||
name: "collection",
|
},
|
||||||
},
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: rustical_dav::namespace::NS_CALDAV,
|
||||||
ns: rustical_dav::namespace::NS_CALDAV,
|
name: "calendar",
|
||||||
name: "calendar",
|
},
|
||||||
},
|
])
|
||||||
],
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
Resourcetype {
|
Resourcetype(&[
|
||||||
inner: &[
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: rustical_dav::namespace::NS_DAV,
|
||||||
ns: rustical_dav::namespace::NS_DAV,
|
name: "collection",
|
||||||
name: "collection",
|
},
|
||||||
},
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: rustical_dav::namespace::NS_CALENDARSERVER,
|
||||||
ns: rustical_dav::namespace::NS_CALENDARSERVER,
|
name: "subscribed",
|
||||||
name: "subscribed",
|
},
|
||||||
},
|
])
|
||||||
],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ impl Resource for CalendarObjectResource {
|
|||||||
type PrincipalResource = PrincipalResource;
|
type PrincipalResource = PrincipalResource;
|
||||||
|
|
||||||
fn get_resourcetype(&self) -> Resourcetype {
|
fn get_resourcetype(&self) -> Resourcetype {
|
||||||
Resourcetype { inner: &[] }
|
Resourcetype(&[])
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_prop(
|
fn get_prop(
|
||||||
|
|||||||
@@ -58,18 +58,16 @@ impl Resource for PrincipalResource {
|
|||||||
type PrincipalResource = PrincipalResource;
|
type PrincipalResource = PrincipalResource;
|
||||||
|
|
||||||
fn get_resourcetype(&self) -> Resourcetype {
|
fn get_resourcetype(&self) -> Resourcetype {
|
||||||
Resourcetype {
|
Resourcetype(&[
|
||||||
inner: &[
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: rustical_dav::namespace::NS_DAV,
|
||||||
ns: rustical_dav::namespace::NS_DAV,
|
name: "collection",
|
||||||
name: "collection",
|
},
|
||||||
},
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: rustical_dav::namespace::NS_DAV,
|
||||||
ns: rustical_dav::namespace::NS_DAV,
|
name: "principal",
|
||||||
name: "principal",
|
},
|
||||||
},
|
])
|
||||||
],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_prop(
|
fn get_prop(
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ impl Resource for AddressObjectResource {
|
|||||||
type PrincipalResource = PrincipalResource;
|
type PrincipalResource = PrincipalResource;
|
||||||
|
|
||||||
fn get_resourcetype(&self) -> Resourcetype {
|
fn get_resourcetype(&self) -> Resourcetype {
|
||||||
Resourcetype { inner: &[] }
|
Resourcetype(&[])
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_prop(
|
fn get_prop(
|
||||||
|
|||||||
@@ -71,18 +71,16 @@ impl Resource for AddressbookResource {
|
|||||||
type PrincipalResource = PrincipalResource;
|
type PrincipalResource = PrincipalResource;
|
||||||
|
|
||||||
fn get_resourcetype(&self) -> Resourcetype {
|
fn get_resourcetype(&self) -> Resourcetype {
|
||||||
Resourcetype {
|
Resourcetype(&[
|
||||||
inner: &[
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: rustical_dav::namespace::NS_DAV,
|
||||||
ns: rustical_dav::namespace::NS_DAV,
|
name: "collection",
|
||||||
name: "collection",
|
},
|
||||||
},
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: rustical_dav::namespace::NS_CARDDAV,
|
||||||
ns: rustical_dav::namespace::NS_CARDDAV,
|
name: "addressbook",
|
||||||
name: "addressbook",
|
},
|
||||||
},
|
])
|
||||||
],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_prop(
|
fn get_prop(
|
||||||
|
|||||||
@@ -59,18 +59,16 @@ impl Resource for PrincipalResource {
|
|||||||
type PrincipalResource = PrincipalResource;
|
type PrincipalResource = PrincipalResource;
|
||||||
|
|
||||||
fn get_resourcetype(&self) -> Resourcetype {
|
fn get_resourcetype(&self) -> Resourcetype {
|
||||||
Resourcetype {
|
Resourcetype(&[
|
||||||
inner: &[
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: rustical_dav::namespace::NS_DAV,
|
||||||
ns: rustical_dav::namespace::NS_DAV,
|
name: "collection",
|
||||||
name: "collection",
|
},
|
||||||
},
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: rustical_dav::namespace::NS_DAV,
|
||||||
ns: rustical_dav::namespace::NS_DAV,
|
name: "principal",
|
||||||
name: "principal",
|
},
|
||||||
},
|
])
|
||||||
],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_prop(
|
fn get_prop(
|
||||||
|
|||||||
@@ -39,12 +39,10 @@ impl<PR: Resource> Resource for RootResource<PR> {
|
|||||||
type PrincipalResource = PR;
|
type PrincipalResource = PR;
|
||||||
|
|
||||||
fn get_resourcetype(&self) -> Resourcetype {
|
fn get_resourcetype(&self) -> Resourcetype {
|
||||||
Resourcetype {
|
Resourcetype(&[ResourcetypeInner {
|
||||||
inner: &[ResourcetypeInner {
|
ns: crate::namespace::NS_DAV,
|
||||||
ns: crate::namespace::NS_DAV,
|
name: "collection",
|
||||||
name: "collection",
|
}])
|
||||||
}],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_prop(
|
fn get_prop(
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
use rustical_xml::XmlSerialize;
|
use rustical_xml::XmlSerialize;
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, XmlSerialize)]
|
#[derive(Debug, Clone, PartialEq, XmlSerialize)]
|
||||||
pub struct Resourcetype {
|
pub struct Resourcetype(#[xml(flatten, ty = "untagged")] pub &'static [ResourcetypeInner]);
|
||||||
#[xml(flatten, ty = "untagged")]
|
|
||||||
pub inner: &'static [ResourcetypeInner],
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, XmlSerialize)]
|
#[derive(Debug, Clone, PartialEq, XmlSerialize)]
|
||||||
pub struct ResourcetypeInner {
|
pub struct ResourcetypeInner {
|
||||||
@@ -31,18 +28,16 @@ mod tests {
|
|||||||
let mut buf = Vec::new();
|
let mut buf = Vec::new();
|
||||||
let mut writer = quick_xml::Writer::new(&mut buf);
|
let mut writer = quick_xml::Writer::new(&mut buf);
|
||||||
Document {
|
Document {
|
||||||
resourcetype: Resourcetype {
|
resourcetype: Resourcetype(&[
|
||||||
inner: &[
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: crate::namespace::NS_DAV,
|
||||||
ns: crate::namespace::NS_DAV,
|
name: "displayname",
|
||||||
name: "displayname",
|
},
|
||||||
},
|
ResourcetypeInner {
|
||||||
ResourcetypeInner {
|
ns: crate::namespace::NS_CALENDARSERVER,
|
||||||
ns: crate::namespace::NS_CALENDARSERVER,
|
name: "calendar-color",
|
||||||
name: "calendar-color",
|
},
|
||||||
},
|
]),
|
||||||
],
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
.serialize_root(&mut writer)
|
.serialize_root(&mut writer)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|||||||
Reference in New Issue
Block a user