From f92be513dcb62d2b401f1ae298595d5363a9f8be Mon Sep 17 00:00:00 2001 From: Lennart <18233294+lennart-k@users.noreply.github.com> Date: Sat, 2 Nov 2024 11:49:55 +0100 Subject: [PATCH] resource: change some type signatures --- crates/caldav/src/calendar/resource.rs | 4 ++-- crates/caldav/src/calendar_object/resource.rs | 2 +- crates/caldav/src/principal/mod.rs | 2 +- crates/caldav/src/root/mod.rs | 2 +- crates/carddav/src/address_object/resource.rs | 2 +- crates/carddav/src/addressbook/resource.rs | 4 ++-- crates/carddav/src/principal/mod.rs | 2 +- crates/carddav/src/root/mod.rs | 2 +- crates/dav/src/methods/proppatch.rs | 2 +- crates/dav/src/resource.rs | 8 ++++---- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/crates/caldav/src/calendar/resource.rs b/crates/caldav/src/calendar/resource.rs index f8bc811..dbfde77 100644 --- a/crates/caldav/src/calendar/resource.rs +++ b/crates/caldav/src/calendar/resource.rs @@ -115,7 +115,7 @@ impl Resource for CalendarResource { &self, rmap: &ResourceMap, user: &User, - prop: Self::PropName, + prop: &Self::PropName, ) -> Result { Ok(match prop { CalendarPropName::Resourcetype => CalendarProp::Resourcetype(Resourcetype::default()), @@ -208,7 +208,7 @@ impl Resource for CalendarResource { } } - fn remove_prop(&mut self, prop: Self::PropName) -> Result<(), rustical_dav::Error> { + fn remove_prop(&mut self, prop: &Self::PropName) -> Result<(), rustical_dav::Error> { match prop { CalendarPropName::Resourcetype => Err(rustical_dav::Error::PropReadOnly), CalendarPropName::CurrentUserPrincipal => Err(rustical_dav::Error::PropReadOnly), diff --git a/crates/caldav/src/calendar_object/resource.rs b/crates/caldav/src/calendar_object/resource.rs index ca3070a..a9772eb 100644 --- a/crates/caldav/src/calendar_object/resource.rs +++ b/crates/caldav/src/calendar_object/resource.rs @@ -74,7 +74,7 @@ impl Resource for CalendarObjectResource { &self, rmap: &ResourceMap, user: &User, - prop: Self::PropName, + prop: &Self::PropName, ) -> Result { Ok(match prop { CalendarObjectPropName::Getetag => CalendarObjectProp::Getetag(self.object.get_etag()), diff --git a/crates/caldav/src/principal/mod.rs b/crates/caldav/src/principal/mod.rs index 98b58ad..c689a76 100644 --- a/crates/caldav/src/principal/mod.rs +++ b/crates/caldav/src/principal/mod.rs @@ -91,7 +91,7 @@ impl Resource for PrincipalResource { &self, rmap: &ResourceMap, user: &User, - prop: Self::PropName, + prop: &Self::PropName, ) -> Result { let principal_href = HrefElement::new(Self::get_url(rmap, vec![&self.principal]).unwrap()); diff --git a/crates/caldav/src/root/mod.rs b/crates/caldav/src/root/mod.rs index 4dde1bb..1fbade2 100644 --- a/crates/caldav/src/root/mod.rs +++ b/crates/caldav/src/root/mod.rs @@ -58,7 +58,7 @@ impl Resource for RootResource { &self, rmap: &ResourceMap, user: &User, - prop: Self::PropName, + prop: &Self::PropName, ) -> Result { Ok(match prop { RootPropName::Resourcetype => RootProp::Resourcetype(Resourcetype::default()), diff --git a/crates/carddav/src/address_object/resource.rs b/crates/carddav/src/address_object/resource.rs index 34deb03..319a8f5 100644 --- a/crates/carddav/src/address_object/resource.rs +++ b/crates/carddav/src/address_object/resource.rs @@ -75,7 +75,7 @@ impl Resource for AddressObjectResource { &self, rmap: &ResourceMap, user: &User, - prop: Self::PropName, + prop: &Self::PropName, ) -> Result { Ok(match prop { AddressObjectPropName::Getetag => AddressObjectProp::Getetag(self.object.get_etag()), diff --git a/crates/carddav/src/addressbook/resource.rs b/crates/carddav/src/addressbook/resource.rs index 2f574fb..a6fce2e 100644 --- a/crates/carddav/src/addressbook/resource.rs +++ b/crates/carddav/src/addressbook/resource.rs @@ -101,7 +101,7 @@ impl Resource for AddressbookResource { &self, rmap: &ResourceMap, user: &User, - prop: Self::PropName, + prop: &Self::PropName, ) -> Result { Ok(match prop { AddressbookPropName::Resourcetype => { @@ -163,7 +163,7 @@ impl Resource for AddressbookResource { } } - fn remove_prop(&mut self, prop: Self::PropName) -> Result<(), rustical_dav::Error> { + fn remove_prop(&mut self, prop: &Self::PropName) -> Result<(), rustical_dav::Error> { match prop { AddressbookPropName::Resourcetype => Err(rustical_dav::Error::PropReadOnly), AddressbookPropName::CurrentUserPrincipal => Err(rustical_dav::Error::PropReadOnly), diff --git a/crates/carddav/src/principal/mod.rs b/crates/carddav/src/principal/mod.rs index c239905..de81bfe 100644 --- a/crates/carddav/src/principal/mod.rs +++ b/crates/carddav/src/principal/mod.rs @@ -84,7 +84,7 @@ impl Resource for PrincipalResource { &self, rmap: &ResourceMap, user: &User, - prop: Self::PropName, + prop: &Self::PropName, ) -> Result { let principal_href = HrefElement::new(Self::get_principal_url(rmap, &self.principal)); diff --git a/crates/carddav/src/root/mod.rs b/crates/carddav/src/root/mod.rs index ec4d3ee..8246f43 100644 --- a/crates/carddav/src/root/mod.rs +++ b/crates/carddav/src/root/mod.rs @@ -58,7 +58,7 @@ impl Resource for RootResource { &self, rmap: &ResourceMap, user: &User, - prop: Self::PropName, + prop: &Self::PropName, ) -> Result { Ok(match prop { RootPropName::Resourcetype => RootProp::Resourcetype(Resourcetype::default()), diff --git a/crates/dav/src/methods/proppatch.rs b/crates/dav/src/methods/proppatch.rs index efca333..58de468 100644 --- a/crates/dav/src/methods/proppatch.rs +++ b/crates/dav/src/methods/proppatch.rs @@ -110,7 +110,7 @@ pub async fn route_proppatch( } Operation::Remove(_remove_el) => { match <::PropName as FromStr>::from_str(&propname) { - Ok(prop) => match resource.remove_prop(prop) { + Ok(prop) => match resource.remove_prop(&prop) { Ok(()) => { props_ok.push(propname); } diff --git a/crates/dav/src/resource.rs b/crates/dav/src/resource.rs index 92e4ec0..0a2931b 100644 --- a/crates/dav/src/resource.rs +++ b/crates/dav/src/resource.rs @@ -18,7 +18,7 @@ use std::str::FromStr; use strum::VariantNames; pub trait Resource: Clone { - type PropName: FromStr + VariantNames + Clone; + type PropName: FromStr + VariantNames; type Prop: Serialize + for<'de> Deserialize<'de> + fmt::Debug + InvalidProperty; type Error: ResponseError + From; @@ -30,14 +30,14 @@ pub trait Resource: Clone { &self, rmap: &ResourceMap, user: &User, - prop: Self::PropName, + prop: &Self::PropName, ) -> Result; fn set_prop(&mut self, _prop: Self::Prop) -> Result<(), crate::Error> { Err(crate::Error::PropReadOnly) } - fn remove_prop(&mut self, _prop: Self::PropName) -> Result<(), crate::Error> { + fn remove_prop(&mut self, _prop: &Self::PropName) -> Result<(), crate::Error> { Err(crate::Error::PropReadOnly) } @@ -112,7 +112,7 @@ pub trait Resource: Clone { let prop_responses = valid_props .into_iter() - .map(|prop| self.get_prop(rmap, user, prop)) + .map(|prop| self.get_prop(rmap, user, &prop)) .collect::, Self::Error>>()?; let mut propstats = vec![PropstatWrapper::Normal(PropstatElement {