diff --git a/src/dav/caltypes.rs b/src/dav/caltypes.rs index c672370..a68936c 100644 --- a/src/dav/caltypes.rs +++ b/src/dav/caltypes.rs @@ -8,6 +8,7 @@ impl Extension for CalExtension { type Error = Violation; type Property = Property; type PropertyRequest = Property; //@FIXME + type ResourceType = Property; //@FIXME } pub enum Violation { diff --git a/src/dav/encoder.rs b/src/dav/encoder.rs index 399a92e..5392b18 100644 --- a/src/dav/encoder.rs +++ b/src/dav/encoder.rs @@ -198,8 +198,15 @@ impl QuickWritable for Property { match self { CreationDate(date) => unimplemented!(), DisplayName(name) => unimplemented!(), - //@FIXME not finished - _ => unimplemented!(), + GetContentLanguage(lang) => unimplemented!(), + GetContentLength(len) => unimplemented!(), + GetContentType(ct) => unimplemented!(), + GetEtag(et) => unimplemented!(), + GetLastModified(dt) => unimplemented!(), + LockDiscovery(locks) => unimplemented!(), + ResourceType(res) => unimplemented!(), + SupportedLock(sup) => unimplemented!(), + Extension(inner) => unimplemented!(), }; Ok(()) } diff --git a/src/dav/types.rs b/src/dav/types.rs index 8807658..59cfcd6 100644 --- a/src/dav/types.rs +++ b/src/dav/types.rs @@ -8,6 +8,7 @@ pub trait Extension { type Error; type Property; type PropertyRequest; + type ResourceType; } /// No extension @@ -18,6 +19,7 @@ impl Extension for NoExtension { type Error = Disabled; type Property = Disabled; type PropertyRequest = Disabled; + type ResourceType = Disabled; } /// 14.1. activelock XML Element @@ -849,7 +851,7 @@ pub enum Property { /// /// /// - ResourceType(Collection), + ResourceType(Vec>), /// 15.10. supportedlock Property /// @@ -880,4 +882,7 @@ pub enum Property { Extension(T::Property), } - +pub enum ResourceType { + Collection, + Extension(T::ResourceType), +}