use serde::{Deserialize, Serialize};
use super::ServerStatus;
use crate::wire::lossy_opt_u64;
#[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)]
pub struct CoreCapabilities {
#[serde(
default,
alias = "pollinterval",
alias = "poll_interval",
deserialize_with = "lossy_opt_u64"
)]
pub poll_interval: Option<u64>,
#[serde(default, alias = "webdav-root", alias = "webdav_root")]
pub webdav_root: Option<String>,
#[serde(default)]
pub status: Option<ServerStatus>,
}
impl CoreCapabilities {
pub const fn poll_interval(&self) -> Option<u64> {
self.poll_interval
}
pub fn webdav_root(&self) -> Option<&str> {
self.webdav_root.as_deref()
}
pub fn status(&self) -> Option<&ServerStatus> {
self.status.as_ref()
}
}