save progress: Move from serde::Serialize to XmlSerialize

This commit is contained in:
Lennart
2024-12-28 12:47:33 +01:00
parent 759bb1f1be
commit c16a5214bc
16 changed files with 230 additions and 200 deletions

View File

@@ -9,8 +9,7 @@ use rustical_dav::resource::{Resource, ResourceService};
use rustical_dav::xml::HrefElement;
use rustical_store::auth::User;
use rustical_store::AddressbookStore;
use rustical_xml::XmlDeserialize;
use serde::Serialize;
use rustical_xml::{XmlDeserialize, XmlSerialize};
use std::sync::Arc;
use strum::{EnumDiscriminants, EnumString, IntoStaticStr, VariantNames};
@@ -24,23 +23,22 @@ pub struct PrincipalResource {
principal: String,
}
#[derive(XmlDeserialize, Serialize, PartialEq, EnumDiscriminants, Clone)]
#[derive(XmlDeserialize, XmlSerialize, PartialEq, EnumDiscriminants, Clone)]
#[strum_discriminants(
name(PrincipalPropName),
derive(EnumString, VariantNames, IntoStaticStr),
strum(serialize_all = "kebab-case")
)]
#[serde(rename_all = "kebab-case")]
pub enum PrincipalProp {
// WebDAV Access Control (RFC 3744)
#[serde(rename = "principal-URL")]
#[xml(rename = b"principal-URL")]
#[strum_discriminants(strum(serialize = "principal-URL"))]
PrincipalUrl(HrefElement),
// CardDAV (RFC 6352)
#[serde(rename = "CARD:addressbook-home-set")]
#[xml(ns = b"urn:ietf:params:xml:ns:carddav")]
AddressbookHomeSet(HrefElement),
#[serde(rename = "CARD:principal-address")]
#[xml(ns = b"urn:ietf:params:xml:ns:carddav")]
PrincipalAddress(Option<HrefElement>),
}