2024-03-05 15:07:47 +00:00
|
|
|
use super::types as dav;
|
|
|
|
use super::caltypes as cal;
|
|
|
|
use super::xml;
|
|
|
|
use super::error;
|
|
|
|
|
2024-03-17 09:31:05 +00:00
|
|
|
#[derive(Debug, PartialEq, Clone)]
|
2024-03-05 15:07:47 +00:00
|
|
|
pub struct Disabled(());
|
|
|
|
impl xml::QRead<Disabled> for Disabled {
|
2024-03-08 08:55:33 +00:00
|
|
|
async fn qread(_xml: &mut xml::Reader<impl xml::IRead>) -> Result<Self, error::ParsingError> {
|
2024-03-06 22:24:54 +00:00
|
|
|
Err(error::ParsingError::Recoverable)
|
2024-03-05 15:07:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
impl xml::QWrite for Disabled {
|
2024-03-16 15:48:46 +00:00
|
|
|
fn qwrite(&self, _xml: &mut xml::Writer<impl xml::IWrite>) -> impl futures::Future<Output = Result<(), quick_xml::Error>> + Send {
|
|
|
|
async { unreachable!(); }
|
2024-03-05 15:07:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// The base WebDAV
|
|
|
|
///
|
2024-03-18 14:04:46 +00:00
|
|
|
/// Any extension is disabled through an object we can't build
|
2024-03-05 15:07:47 +00:00
|
|
|
/// due to a private inner element.
|
2024-03-17 09:31:05 +00:00
|
|
|
#[derive(Debug, PartialEq, Clone)]
|
2024-03-05 15:07:47 +00:00
|
|
|
pub struct Core {}
|
|
|
|
impl dav::Extension for Core {
|
|
|
|
type Error = Disabled;
|
|
|
|
type Property = Disabled;
|
|
|
|
type PropertyRequest = Disabled;
|
|
|
|
type ResourceType = Disabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
// WebDAV with the base Calendar implementation (RFC4791)
|
2024-03-17 09:31:05 +00:00
|
|
|
#[derive(Debug, PartialEq, Clone)]
|
2024-03-05 17:15:03 +00:00
|
|
|
pub struct Calendar {}
|
|
|
|
impl dav::Extension for Calendar
|
2024-03-05 15:07:47 +00:00
|
|
|
{
|
|
|
|
type Error = cal::Violation;
|
|
|
|
type Property = cal::Property;
|
|
|
|
type PropertyRequest = cal::PropertyRequest;
|
|
|
|
type ResourceType = cal::ResourceType;
|
|
|
|
}
|
2024-03-05 17:15:03 +00:00
|
|
|
|