mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 22:52:22 +00:00
resource: change some type signatures
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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()),
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
@@ -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()),
|
||||
|
||||
@@ -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()),
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
@@ -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()),
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user