resource: change some type signatures

This commit is contained in:
Lennart
2024-11-02 11:49:55 +01:00
parent 0c14f8ba90
commit f92be513dc
10 changed files with 15 additions and 15 deletions

View File

@@ -115,7 +115,7 @@ impl Resource for CalendarResource {
&self,
rmap: &ResourceMap,
user: &User,
prop: Self::PropName,
prop: &Self::PropName,
) -> Result<Self::Prop, Self::Error> {
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),

View File

@@ -74,7 +74,7 @@ impl Resource for CalendarObjectResource {
&self,
rmap: &ResourceMap,
user: &User,
prop: Self::PropName,
prop: &Self::PropName,
) -> Result<Self::Prop, Self::Error> {
Ok(match prop {
CalendarObjectPropName::Getetag => CalendarObjectProp::Getetag(self.object.get_etag()),

View File

@@ -91,7 +91,7 @@ impl Resource for PrincipalResource {
&self,
rmap: &ResourceMap,
user: &User,
prop: Self::PropName,
prop: &Self::PropName,
) -> Result<Self::Prop, Self::Error> {
let principal_href = HrefElement::new(Self::get_url(rmap, vec![&self.principal]).unwrap());

View File

@@ -58,7 +58,7 @@ impl Resource for RootResource {
&self,
rmap: &ResourceMap,
user: &User,
prop: Self::PropName,
prop: &Self::PropName,
) -> Result<Self::Prop, Self::Error> {
Ok(match prop {
RootPropName::Resourcetype => RootProp::Resourcetype(Resourcetype::default()),

View File

@@ -75,7 +75,7 @@ impl Resource for AddressObjectResource {
&self,
rmap: &ResourceMap,
user: &User,
prop: Self::PropName,
prop: &Self::PropName,
) -> Result<Self::Prop, Self::Error> {
Ok(match prop {
AddressObjectPropName::Getetag => AddressObjectProp::Getetag(self.object.get_etag()),

View File

@@ -101,7 +101,7 @@ impl Resource for AddressbookResource {
&self,
rmap: &ResourceMap,
user: &User,
prop: Self::PropName,
prop: &Self::PropName,
) -> Result<Self::Prop, Self::Error> {
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),

View File

@@ -84,7 +84,7 @@ impl Resource for PrincipalResource {
&self,
rmap: &ResourceMap,
user: &User,
prop: Self::PropName,
prop: &Self::PropName,
) -> Result<Self::Prop, Self::Error> {
let principal_href = HrefElement::new(Self::get_principal_url(rmap, &self.principal));

View File

@@ -58,7 +58,7 @@ impl Resource for RootResource {
&self,
rmap: &ResourceMap,
user: &User,
prop: Self::PropName,
prop: &Self::PropName,
) -> Result<Self::Prop, Self::Error> {
Ok(match prop {
RootPropName::Resourcetype => RootProp::Resourcetype(Resourcetype::default()),

View File

@@ -110,7 +110,7 @@ pub async fn route_proppatch<R: ResourceService>(
}
Operation::Remove(_remove_el) => {
match <<R::Resource as Resource>::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);
}

View File

@@ -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<crate::Error>;
@@ -30,14 +30,14 @@ pub trait Resource: Clone {
&self,
rmap: &ResourceMap,
user: &User,
prop: Self::PropName,
prop: &Self::PropName,
) -> Result<Self::Prop, Self::Error>;
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::<Result<Vec<Self::Prop>, Self::Error>>()?;
let mut propstats = vec![PropstatWrapper::Normal(PropstatElement {