Files
inbuxa-server/crates/dav-proto/src/responses/mkcol.rs
T
jcoffey-dev 7dae9b29fd Import upstream v0.16.22, stripped
Upstream commit: 474dd0229cb20cf513036619781ed97bd8073c3f
Enterprise-only files removed or emptied: 63
Enterprise-only snippets removed: 117 in 50 files
Dangling module declarations removed: 5
Cargo edits turning enterprise off: 14
Verification: clean
Enterprise feature gates left for rebuilt features: 19 in 18 files

Produced by tools/fork/strip.py. The full report is in docs/fork/strip-reports/ on main.
2026-09-18 10:21:56 -07:00

54 lines
1.4 KiB
Rust

/*
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <[email protected]>
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
use crate::schema::{
Namespace, Namespaces,
response::{List, MkColResponse, PropStat},
};
use std::fmt::Display;
impl Display for MkColResponse {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>")?;
if !self.mkcalendar {
write!(
f,
"<D:mkcol-response {}>{}</D:mkcol-response>",
self.namespaces, self.propstat
)
} else {
write!(
f,
"<A:mkcalendar-response {}>{}</A:mkcalendar-response>",
self.namespaces, self.propstat
)
}
}
}
impl MkColResponse {
pub fn new(propstat: Vec<PropStat>) -> Self {
Self {
namespaces: Namespaces::default(),
propstat: List(propstat),
mkcalendar: false,
}
}
pub fn with_mkcalendar(mut self, mkcalendar: bool) -> Self {
self.mkcalendar = mkcalendar;
if mkcalendar {
self.namespaces.set(Namespace::CalDav);
}
self
}
pub fn with_namespace(mut self, namespace: Namespace) -> Self {
self.namespaces.set(namespace);
self
}
}