JMAP for File Storage implementation (closes #2218)

This commit is contained in:
mdecimus
2025-10-03 16:52:34 +02:00
parent d000b5975a
commit c47413a42b
32 changed files with 1683 additions and 38 deletions

View File

@@ -558,7 +558,7 @@ impl DavResourcePath<'_> {
#[inline(always)]
pub fn size(&self) -> u32 {
self.resource.size()
self.resource.size().unwrap_or_default()
}
}
@@ -692,6 +692,20 @@ impl DavResource {
}
}
pub fn parent_id(&self) -> Option<u32> {
match &self.data {
DavResourceMetadata::File { parent_id, .. } => *parent_id,
DavResourceMetadata::CalendarEvent { names, .. } => {
names.first().map(|name| name.parent_id)
}
DavResourceMetadata::ContactCard { names } => names.first().map(|name| name.parent_id),
DavResourceMetadata::CalendarScheduling { names } if names.is_empty() => {
Some(SCHEDULE_INBOX_ID)
}
_ => None,
}
}
pub fn child_names(&self) -> Option<&[DavName]> {
match &self.data {
DavResourceMetadata::CalendarEvent { names, .. } => Some(names.as_slice()),
@@ -782,10 +796,10 @@ impl DavResource {
}
}
pub fn size(&self) -> u32 {
pub fn size(&self) -> Option<u32> {
match &self.data {
DavResourceMetadata::File { size, .. } => size.unwrap_or_default(),
_ => 0,
DavResourceMetadata::File { size, .. } => *size,
_ => None,
}
}