nextcloud_users/capabilities/
status.rs1use serde::{Deserialize, Serialize};
2
3use crate::wire::lossy_bool;
4
5#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)]
7pub struct ServerStatus {
8 #[serde(default, deserialize_with = "lossy_bool")]
10 pub installed: bool,
11 #[serde(default, deserialize_with = "lossy_bool")]
13 pub maintenance: bool,
14 #[serde(
16 default,
17 alias = "needsDbUpgrade",
18 alias = "needs_db_upgrade",
19 deserialize_with = "lossy_bool"
20 )]
21 pub needs_db_upgrade: bool,
22 #[serde(default)]
24 pub version: Option<String>,
25 #[serde(default, alias = "versionstring", alias = "version_string")]
27 pub version_string: Option<String>,
28 #[serde(default)]
30 pub edition: Option<String>,
31 #[serde(default, alias = "productname", alias = "product_name")]
33 pub product_name: Option<String>,
34}
35
36impl ServerStatus {
37 pub const fn is_installed(&self) -> bool {
39 self.installed
40 }
41
42 pub const fn is_maintenance(&self) -> bool {
44 self.maintenance
45 }
46
47 pub const fn needs_db_upgrade(&self) -> bool {
49 self.needs_db_upgrade
50 }
51
52 pub fn version(&self) -> Option<&str> {
54 self.version.as_deref()
55 }
56
57 pub fn version_string(&self) -> Option<&str> {
59 self.version_string.as_deref()
60 }
61
62 pub fn edition(&self) -> Option<&str> {
64 self.edition.as_deref()
65 }
66
67 pub fn product_name(&self) -> Option<&str> {
69 self.product_name.as_deref()
70 }
71}