intense code jankification

This commit is contained in:
Lennart
2024-03-14 19:46:32 +01:00
parent b540362791
commit b21586d077
4 changed files with 32 additions and 15 deletions

View File

@@ -132,10 +132,11 @@ pub enum CalendarProp {
} }
#[derive(Serialize)] #[derive(Serialize)]
#[serde(untagged)] #[serde(rename_all = "kebab-case")]
pub enum CalendarPropResponse { pub enum CalendarPropResponse {
Resourcetype(Resourcetype), Resourcetype(Resourcetype),
CurrentUser(HrefElement), CurrentUserPrincipal(HrefElement),
Owner(HrefElement),
Displayname(TextNode), Displayname(TextNode),
CalendarColor(TextNode), CalendarColor(TextNode),
CalendarDescription(TextNode), CalendarDescription(TextNode),
@@ -190,11 +191,13 @@ impl<C: CalendarStore + ?Sized> Resource for CalendarResource<C> {
CalendarProp::Resourcetype => { CalendarProp::Resourcetype => {
Ok(CalendarPropResponse::Resourcetype(Resourcetype::default())) Ok(CalendarPropResponse::Resourcetype(Resourcetype::default()))
} }
CalendarProp::CurrentUserPrincipal | CalendarProp::Owner => { CalendarProp::CurrentUserPrincipal => Ok(CalendarPropResponse::CurrentUserPrincipal(
Ok(CalendarPropResponse::CurrentUser(HrefElement::new( HrefElement::new(format!("{}/{}/", self.prefix, self.principal)),
format!("{}/{}/", self.prefix, self.principal), )),
))) CalendarProp::Owner => Ok(CalendarPropResponse::Owner(HrefElement::new(format!(
} "{}/{}/",
self.prefix, self.principal
)))),
CalendarProp::Displayname => Ok(CalendarPropResponse::Displayname(TextNode( CalendarProp::Displayname => Ok(CalendarPropResponse::Displayname(TextNode(
self.calendar.name.clone(), self.calendar.name.clone(),
))), ))),

View File

@@ -26,7 +26,7 @@ pub enum EventProp {
} }
#[derive(Serialize)] #[derive(Serialize)]
#[serde(untagged)] #[serde(rename_all = "kebab-case")]
pub enum PrincipalPropResponse { pub enum PrincipalPropResponse {
Getetag(TextNode), Getetag(TextNode),
CalendarData(TextNode), CalendarData(TextNode),

View File

@@ -26,10 +26,16 @@ pub struct Resourcetype {
} }
#[derive(Serialize)] #[derive(Serialize)]
#[serde(untagged)] #[serde(rename_all = "kebab-case")]
pub enum PrincipalPropResponse { pub enum PrincipalPropResponse {
Resourcetype(Resourcetype), Resourcetype(Resourcetype),
CurrentUser(HrefElement), CurrentUserPrincipal(HrefElement),
#[serde(rename = "principal-URL")]
PrincipalUrl(HrefElement),
#[serde(rename = "C:calendar-home-set")]
CalendarHomeSet(HrefElement),
#[serde(rename = "C:calendar-user-address-set")]
CalendarUserAddressSet(HrefElement),
} }
#[derive(EnumString, Debug, VariantNames, IntoStaticStr, EnumProperty, Clone)] #[derive(EnumString, Debug, VariantNames, IntoStaticStr, EnumProperty, Clone)]
@@ -100,12 +106,20 @@ impl<C: CalendarStore + ?Sized> Resource for PrincipalCalendarsResource<C> {
PrincipalProp::Resourcetype => { PrincipalProp::Resourcetype => {
Ok(PrincipalPropResponse::Resourcetype(Resourcetype::default())) Ok(PrincipalPropResponse::Resourcetype(Resourcetype::default()))
} }
PrincipalProp::CurrentUserPrincipal PrincipalProp::CurrentUserPrincipal => Ok(PrincipalPropResponse::CurrentUserPrincipal(
| PrincipalProp::PrincipalUrl
| PrincipalProp::CalendarHomeSet
| PrincipalProp::CalendarUserAddressSet => Ok(PrincipalPropResponse::CurrentUser(
HrefElement::new(format!("{}/{}/", self.prefix, self.principal)), HrefElement::new(format!("{}/{}/", self.prefix, self.principal)),
)), )),
PrincipalProp::PrincipalUrl => Ok(PrincipalPropResponse::PrincipalUrl(
HrefElement::new(format!("{}/{}/", self.prefix, self.principal)),
)),
PrincipalProp::CalendarHomeSet => Ok(PrincipalPropResponse::CalendarHomeSet(
HrefElement::new(format!("{}/{}/", self.prefix, self.principal)),
)),
PrincipalProp::CalendarUserAddressSet => {
Ok(PrincipalPropResponse::CalendarUserAddressSet(
HrefElement::new(format!("{}/{}/", self.prefix, self.principal)),
))
}
} }
} }
} }

View File

@@ -26,7 +26,7 @@ pub struct Resourcetype {
} }
#[derive(Serialize)] #[derive(Serialize)]
#[serde(untagged)] #[serde(rename_all = "kebab-case")]
pub enum RootPropResponse { pub enum RootPropResponse {
Resourcetype(Resourcetype), Resourcetype(Resourcetype),
CurrentUser(HrefElement), CurrentUser(HrefElement),